دیگر

میک 'سٹرنگ انڈیکس رینج سے باہر ہے: 0' ...کیا کوئی مجھے بتا سکتا ہے کہ یہاں کیا غلط ہے؟ (جاوا)

چیس آر

اصل پوسٹر
8 مئی 2008
پی ڈی ایکس
  • 2 جون 2009
میں نے ابھی اپنی جاوا کلاس کے لیے یہ پروگرام لکھنا ختم کیا۔ یہ ایک سادہ پروگرام ہے جو حساب لگاتا ہے کہ باڑ لگانے میں کتنا خرچ آتا ہے۔ آخر میں، یہ پوچھتا ہے کہ 'کیا آپ ایک اور تخمینہ لگانا چاہیں گے (Y/N)'، اور صارف فرض کرتا ہے کہ وہ ہاں یا نہیں کا انتخاب کرے۔ تاہم، میرا اپنا چلانے کے بعد، مجھے وہ اختیار نہیں ملے گا، یہ صرف کہتا ہے:

ایک اور تخمینہ کا حساب لگائیں (Y/N): تھریڈ 'main' java.lang.StringIndexOutOfBoundsException: سٹرنگ انڈیکس حد سے باہر: 0
java.lang.String.charAt پر (String.java:558)
Test1.main پر (Test1.java:73)

ایسا کیوں کر رہا ہے!!!

ویسے پروگرام یہ ہے:

کوڈ: |_+_|

Littleodie914

9 جون 2004


روچیسٹر، NY
  • 2 جون 2009
واہ، یہ مشکل ہے۔ میں نے آپ کی آخری 'read.nextLine()' کو صرف 'read.next()' میں تبدیل کر کے کام کر لیا، لیکن میں یہ دیکھنے کے لیے تھوڑا قریب سے دیکھوں گا کہ یہ پہلے طریقے سے کیوں کام نہیں کرتا ہے۔

ترمیم: ایسا لگتا ہے کہ اس کا نیکسٹ لائن () طریقہ کار سے پوائنٹر کو موجودہ لائن سے آگے بڑھانا ہے۔ میں خود اسے اتنا نہیں سمجھتا، لیکن یہ لنکس تھوڑا سا الجھن دور کرنے میں مدد کر سکتے ہیں:

API سکینر
متعلقہ فورم پوسٹ

ہائریز

6 جنوری 2004
مغربی امریکہ
  • 2 جون 2009
میں اندازہ لگانے جا رہا ہوں کہ آپ کا ایک پچھلے ریڈ کالز کی بورڈ ان پٹ بفر میں نئی ​​لائن کریکٹر چھوڑ رہی ہیں۔ لہذا، جب آپ nextLine() کو کال کرتے ہیں، تو آپ کو ایک خالی سٹرنگ ملتی ہے، جس کی وجہ سے 0 پوزیشن پر کردار کو جانچنے کی کوشش کی جاتی ہے، کیونکہ وہاں کوئی نہیں ہے۔ یہ کنسول ان پٹ سی کے بہت سے فنکشنز کے ساتھ بھی ایک مسئلہ ہے۔ کسی نہ کسی طرح آپ ڈمی ریڈ کال یا کسی اور چیز کے ساتھ پہلے بفر کو فلش کرنا چاہتے ہیں۔ میں نے طویل عرصے سے جاوا کا استعمال نہیں کیا ہے لہذا میں نہیں جانتا کہ صحیح طریقہ کار کیا ہوگا۔

gnasher729

معطل
25 نومبر 2005
  • 2 جون 2009
چیس آر نے کہا: میں نے ابھی اپنی جاوا کلاس کے لیے یہ پروگرام لکھنا ختم کیا۔ یہ ایک سادہ پروگرام ہے جو حساب لگاتا ہے کہ باڑ لگانے میں کتنا خرچ آتا ہے۔ آخر میں، یہ پوچھتا ہے کہ 'کیا آپ ایک اور تخمینہ لگانا چاہیں گے (Y/N)'، اور صارف فرض کرتا ہے کہ وہ ہاں یا نہیں کا انتخاب کرے۔ تاہم، میرا اپنا چلانے کے بعد، مجھے وہ اختیار نہیں ملے گا، یہ صرف کہتا ہے:

ایک اور تخمینہ کا حساب لگائیں (Y/N): تھریڈ 'main' 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 کہاں ہے۔ یہ آپ کو دکھائے گا کہ مسئلہ کہاں ہوتا ہے۔

سطر یہ ہے:

کوڈ: |_+_|
اس کے ظاہر ہونے کے فوراً بعد 'ایک اور تخمینہ کا حساب لگائیں (Y/N):'