Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Scanner lukee tyhjän

El-Ejecutor [15.02.2008 15:06:09]

#

Tervehdys!
Törmäsin tällaiseen ongelmaan, että taulukkoon lukiessa scanneri vetää ensimmäiseen alkioon null-arvon automaattisesti.
Allaoleva for-silmukka siis hyppää suoraan pelaajaan 2. Laitoin ennen for-silmukkaa testiksi:
String empty = lukija.nextLine();
ja silloin tämä "tyhjäluku" kohdistui empty-muuttujaan.

Sen verran sain hahmotettua, että scannerille pitäisi kai tehdä jotain, mutta kun en tosiaankaan tiedä mitä :)

Apua saatavilla?

int lkm = lukija.nextInt();
String[] pelaajat = new String[lkm];
int i = 0;
for (i=0; i<lkm; i++){
	int nro = i+1;
	System.out.println("Pelaaja "+nro+", syötä nimesi.");
	pelaajat[i] = lukija.nextLine();
}

Antti Laaksonen [15.02.2008 15:29:44]

#

Ratkaisit ongelman jo itse: kutsu kerran nextLine-metodia ennen silmukkaa.

Tämän vuoksi ei tarvitse edes määritellä muuttujaa:

lukija.nextLine();

Ilmiö johtunee siitä, että nextInt-metodi lukee pelkän luvun eikä poista rivinvaihtoa sen jäljestä. Seuraava nextLine-metodi lukee sitten rivinvaihdon ja tulkitsee rivin loppuvan siihen.

El-Ejecutor [15.02.2008 15:41:55]

#

Kiitoksia!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta