Drugo

Mac 'Indeks niza izven obsega: 0' ...Mi lahko kdo pove, kaj je tukaj narobe? (Java)

Chase R

Originalni plakat
8. maja 2008
PDX
  • 2. junij 2009
Pravkar sem končal pisanje tega programa za moj razred java. To je preprost program, ki izračuna, koliko stane namestitev ograje. Na koncu vpraša 'ali želite narediti še eno oceno (Y/N)', uporabnik pa naj bi izbral da ali ne. Vendar, ko končam z zagonom svojega, te možnosti ne bom dobil, piše samo:

Izračunaj drugo oceno (Y/N): izjema v niti 'main' java.lang.StringIndexOutOfBoundsException: Indeks niza izven obsega: 0
na java.lang.String.charAt (String.java:558)
na Test1.main(Test1.java:73)

Zakaj to počne!!!

Mimogrede, tukaj je program:

Koda: |_+_|

Littleodie914

9. junij 2004


Rochester, NY
  • 2. junij 2009
Vau, to je težavno. Deloval sem tako, da sem vaš zadnji 'read.nextLine()' spremenil v samo 'read.next()', vendar bom pogledal nekoliko bližje, da vidim, zakaj ne deluje na prvi način.

Uredi: Zdi se, da ima nekaj opraviti z metodo nextLine(), ki premika kazalec čez trenutno vrstico. Sam tega ne razumem toliko, vendar bi te povezave morda pomagale razjasniti malo zmede:

API skener
Povezana objava na forumu

HiRez

6. januar 2004
Zahodne ZDA
  • 2. junij 2009
Ugibal bom, da je eden od tvojih prejšnji klici branja puščajo znak nove vrstice v vnosnem medpomnilniku tipkovnice. Zato, ko pokličete nextLine(), dobite prazen niz, kar vodi do izjeme, ki poskuša preučiti znak na mestu 0, saj ga ni. To je tudi težava s številnimi funkcijami vhoda C konzole. Nekako verjetno želite najprej izprazniti medpomnilnik z lažnim klicem branja ali kaj podobnega. Jave že dolgo nisem uporabljal, tako da ne vem, kakšen bi bil točno pravi postopek.

gnasher729

Prekinjeno
25. november 2005
  • 2. junij 2009
Chase R je rekel: Pravkar sem končal pisanje tega programa za moj razred java. To je preprost program, ki izračuna, koliko stane namestitev ograje. Na koncu vpraša 'ali želite narediti še eno oceno (Y/N)', uporabnik pa naj bi izbral da ali ne. Vendar, ko končam z zagonom svojega, te možnosti ne bom dobil, piše samo:

Izračunaj drugo oceno (Y/N): izjema v niti 'main' java.lang.StringIndexOutOfBoundsException: Indeks niza izven obsega: 0
na java.lang.String.charAt (String.java:558)
na Test1.main(Test1.java:73)

Zakaj to počne!!!

Ker imate izvorno kodo, verjetno v urejevalniku programa, ki ga je mogoče narediti za prikaz številk vrstic, bi morali najti, kje je vrstica 73 v datoteki Test1.main. To vam bo pokazalo, kje se pojavi težava.

Zdaj imate izjemo, ki pravi, da je indeks 0 'izven obsega'. Če dostopate do niza z n znaki, kateri so veljavni indeksi?

Ali nam lahko zdaj poveste, v kateri situaciji indeks 0 ni veljaven?

To bi moralo odgovoriti na vaše vprašanje.

SilentPanda

Zaslužni moderator
8. oktober 2002
Bambusov gozd
  • 2. junij 2009
gnasher729 je rekel: Ker imate izvorno kodo, verjetno v urejevalniku programa, ki ga je mogoče narediti za prikaz številk vrstic, bi morali najti, kje je vrstica 73 v datoteki Test1.main. To vam bo pokazalo, kje se pojavi težava.

Vrstica je:

Koda: |_+_|
takoj za tem, ko se prikaže 'Izračunaj drugo oceno (Y/N):'