Остало

Мац 'Индекс стринга ван опсега: 0' ...Може ли ми неко рећи шта није у реду? (Јава)

Чејс Р

Оригинални постер
8. маја 2008
ПДКС
  • 2. јуна 2009
Управо сам завршио писање овог програма за своју јава класу. То је једноставан програм који израчунава колико кошта постављање ограде. На крају се поставља питање „да ли бисте желели да направите још једну процену (И/Н)“, а корисник треба да одабере да или не. Међутим, када завршим са својим покретањем, нећу добити ту опцију, већ само каже:

Израчунај другу процену (И/Н): Изузетак у 'маин' нити јава.ланг.СтрингИндекОутОфБоундсЕкцептион: Индекс стринга ван опсега: 0
на јава.ланг.Стринг.цхарАт (Стринг.јава:558)
на Тест1.маин(Тест1.јава:73)

Зашто то ради!!!

Ево програма узгред:

Шифра: |_+_|

Литтлеодие914

9. јуна 2004


Роцхестер, НИ
  • 2. јуна 2009
Вау, то је незгодно. Променио сам ваш последњи 'реад.нектЛине()' у само 'реад.нект()', али ћу погледати мало ближе да видим зашто не ради на први начин.

Уредити: Чини се да има неке везе са методом нектЛине() која помера показивач изнад тренутне линије. Ни сам то не разумем толико, али ови линкови би могли помоћи да разјаснимо мало забуне:

АПИ скенер
Повезана порука на форуму

ХиРез

6. јануара 2004
Западне САД
  • 2. јуна 2009
Претпостављам да је један од твојих Претходна позиви за читање остављају знак новог реда у баферу за унос са тастатуре. Стога, када позовете нектЛине(), добијате празан стринг, што доводи до изузетка који покушава да испита карактер на позицији 0, пошто га нема. Ово је такође проблем са многим функцијама Ц улаза на конзоли. Некако вероватно желите да прво испразните бафер лажним позивом за читање или тако нечим. Нисам користио Јаву дуго времена тако да не знам која би тачно била права процедура.

гнасхер729

Суспендед
25. новембар 2005
  • 2. јуна 2009
Цхасе Р је рекао: Управо сам завршио писање овог програма за своју јава класу. То је једноставан програм који израчунава колико кошта постављање ограде. На крају се поставља питање „да ли бисте желели да направите још једну процену (И/Н)“, а корисник треба да одабере да или не. Међутим, када завршим са својим покретањем, нећу добити ту опцију, већ само каже:

Израчунај другу процену (И/Н): Изузетак у 'маин' нити јава.ланг.СтрингИндекОутОфБоундсЕкцептион: Индекс стринга ван опсега: 0
на јава.ланг.Стринг.цхарАт (Стринг.јава:558)
на Тест1.маин(Тест1.јава:73)

Зашто то ради!!!

Пошто имате изворни код, вероватно у уређивачу програма који може да се направи да приказује бројеве редова, требало би да будете у могућности да пронађете где је ред 73 у датотеци Тест1.маин. То ће вам показати где се проблем дешава.

Сада имате изузетак који каже да је индекс од 0 „ван опсега“. Ако приступате низу са н знакова, који су важећи индекси?

Можете ли нам сада рећи у којој тачно ситуацији индекс 0 није важећи индекс?

То би требало да одговори на ваше питање.

СилентПанда

Модератор емеритус
8. октобар 2002
Бамбусова шума
  • 2. јуна 2009
гнасхер729 је рекао: Пошто имате изворни код, вероватно у уређивачу програма који може да се направи да приказује бројеве редова, требало би да будете у могућности да пронађете где је ред 73 у датотеци Тест1.маин. То ће вам показати где се проблем дешава.

линија је:

Шифра: |_+_|
одмах након што се прикаже „Израчунај другу процену (И/Н):“