अन्य

मैक 'स्ट्रिंग इंडेक्स रेंज से बाहर: 0' ... क्या कोई मुझे बता सकता है कि यहां क्या गलत है? (जावा)

चेस आर

मूल पोस्टर
8 मई 2008
पीडीएक्स
  • 2 जून 2009
मैंने अभी-अभी अपनी जावा कक्षा के लिए इस कार्यक्रम को लिखना समाप्त किया है। यह एक सरल प्रोग्राम है जो गणना करता है कि बाड़ लगाने में कितना खर्च होता है। अंत में, यह पूछता है कि 'क्या आप एक और अनुमान (वाई/एन) बनाना चाहेंगे', और उपयोगकर्ता को हां या नहीं चुनने का अनुमान है। हालाँकि, जब मैं अपना काम कर रहा हूँ, तो मुझे वह विकल्प नहीं मिलेगा, यह सिर्फ इतना कहता है:

एक और अनुमान (वाई/एन) की गणना करें: थ्रेड 'मुख्य' java.lang.StringIndexOutOfBoundsException में अपवाद: सीमा से बाहर स्ट्रिंग अनुक्रमणिका: 0
java.lang.String.charAt पर (String.java:558)
Test1.main पर (Test1.java:73)

यह ऐसा क्यों कर रहा है!!!

यहाँ कार्यक्रम वैसे है:

कोड: |_+_|

लिटिलोडी914

जून 9, 2004


रोचेस्टर, एनवाई
  • 2 जून 2009
वाह, यह मुश्किल है। मैंने इसे आपके पिछले 'read.nextLine ()' को सिर्फ 'read.next ()' में बदलकर काम करने के लिए मिला है, लेकिन मैं यह देखने के लिए थोड़ा करीब देखूंगा कि यह पहले तरीके से काम क्यों नहीं करता है।

संपादित करें: ऐसा लगता है कि वर्तमान लाइन से परे पॉइंटर को आगे बढ़ाने वाली अगली लाइन() विधि के साथ कुछ करना है। मैं खुद इसे इतना नहीं समझता, लेकिन ये लिंक कुछ भ्रम को दूर करने में मदद कर सकते हैं:

एपीआई स्कैनर
संबंधित फोरम पोस्ट

हायरेज

जनवरी 6, 2004
पश्चिमी अमेरिका
  • 2 जून 2009
मैं यह अनुमान लगाने जा रहा हूँ कि आप में से एक आपका पहले का रीड कॉल कीबोर्ड इनपुट बफर में न्यूलाइन कैरेक्टर छोड़ रहे हैं। इसलिए, जब आप नेक्स्टलाइन () को कॉल करते हैं, तो आपको एक खाली स्ट्रिंग मिलती है, जिससे अपवाद स्थिति 0 पर वर्ण की जांच करने की कोशिश करता है, क्योंकि कोई भी नहीं है। यह कई कंसोल इनपुट सी फ़ंक्शन के साथ भी एक समस्या है। किसी भी तरह आप शायद पहले बफर को डमी रीड कॉल या कुछ के साथ फ्लश करना चाहते हैं। मैंने लंबे समय से जावा का उपयोग नहीं किया है इसलिए मुझे नहीं पता कि सही प्रक्रिया वास्तव में क्या होगी।

gnasher729

निलंबित
25 नवंबर, 2005
  • 2 जून 2009
चेस आर ने कहा: मैंने अपने जावा वर्ग के लिए इस कार्यक्रम को लिखना समाप्त कर दिया है। यह एक सरल प्रोग्राम है जो गणना करता है कि बाड़ लगाने में कितना खर्च होता है। अंत में, यह पूछता है कि 'क्या आप एक और अनुमान (वाई/एन) बनाना चाहेंगे', और उपयोगकर्ता को हां या नहीं चुनने का अनुमान है। हालाँकि, जब मैं अपना काम कर रहा हूँ, तो मुझे वह विकल्प नहीं मिलेगा, यह सिर्फ इतना कहता है:

एक और अनुमान (वाई/एन) की गणना करें: थ्रेड 'मुख्य' java.lang.StringIndexOutOfBoundsException में अपवाद: सीमा से बाहर स्ट्रिंग अनुक्रमणिका: 0
java.lang.String.charAt पर (String.java:558)
Test1.main पर (Test1.java:73)

यह ऐसा क्यों कर रहा है!!!

चूंकि आपके पास स्रोत कोड है, शायद एक प्रोग्राम एडिटर में जिसे लाइन नंबर प्रदर्शित करने के लिए बनाया जा सकता है, आपको यह पता लगाने में सक्षम होना चाहिए कि Test1.main फ़ाइल में लाइन 73 कहां है। यह आपको दिखाएगा कि समस्या कहां होती है।

अब आपके पास एक अपवाद है जो कहता है कि 0 का सूचकांक 'सीमा से बाहर' है। यदि आप n वर्णों के साथ एक स्ट्रिंग का उपयोग करते हैं, तो मान्य सूचकांक क्या हैं?

अब क्या आप हमें बता सकते हैं कि सूचकांक 0 किस स्थिति में वैध सूचकांक नहीं है?

यह आपके प्रश्न का उत्तर देना चाहिए।

साइलेंटपांडा

मॉडरेटर एमेरिटस
8 अक्टूबर 2002
बांस वन
  • 2 जून 2009
gnasher729 ने कहा: चूंकि आपके पास स्रोत कोड है, शायद एक प्रोग्राम एडिटर में जिसे लाइन नंबर प्रदर्शित करने के लिए बनाया जा सकता है, आपको यह पता लगाने में सक्षम होना चाहिए कि Test1.main फ़ाइल में लाइन 73 कहाँ है। यह आपको दिखाएगा कि समस्या कहां होती है।

रेखा है:

कोड: |_+_|
इसके ठीक बाद 'एक और अनुमान की गणना करें (वाई/एन):' प्रदर्शित करता है