Hallo,
das folgende "Programm" soll ein Array mittels Benutzereingabe erstellen, Werte der Reihe nach einlesen, und anschließend wieder ausgeben.
Beispielsweise kommt dieser Ablauf zustande:
Es wird also ein Array mit der Komponentenanzahl 3 erstellt,
ich komme jedoch garnicht erst dazu drei Werte einzugeben - stattdessen wird ein leerer Zeilenumbruch eingefügt.
Erstelle ich zwei Scanner-Objekte zur getrennten Eingabe der Länge und der Werte, funktioniert das ganze.
Muss ich also für jede Lese-Operation ein eigenes Scanner-Objekt erzeugen oder kann man alte Objekte doch irgendwie recyclen?
Ich habe zwar die Methode reset() gesehen, aber die hat anscheinend eine andere Funktion (determiner).
das folgende "Programm" soll ein Array mittels Benutzereingabe erstellen, Werte der Reihe nach einlesen, und anschließend wieder ausgeben.
Java:
public class ArrayTest {
public static void main (String[] args){
Scanner scanner1 = new Scanner(System.in);
System.out.print("array length: ");
int x = scanner1.nextInt();
String[] stringArray = new String[x];
for(int i = 0; i < stringArray.length; i++){
stringArray[i] = scanner1.nextLine();
}
for(String s : stringArray){
System.out.println(s);
}
scanner1.close();
}
}
Beispielsweise kommt dieser Ablauf zustande:
Code:
run:
array length: 3
abc
def
abc
def
BUILD SUCCESSFUL (total time: 17 seconds)
Es wird also ein Array mit der Komponentenanzahl 3 erstellt,
ich komme jedoch garnicht erst dazu drei Werte einzugeben - stattdessen wird ein leerer Zeilenumbruch eingefügt.
Erstelle ich zwei Scanner-Objekte zur getrennten Eingabe der Länge und der Werte, funktioniert das ganze.
Java:
public class ArrayTest {
public static void main (String[] args){
Scanner scanner1 = new Scanner(System.in);
System.out.print("array length: ");
int x = scanner1.nextInt();
String[] stringArray = new String[x];
Scanner scanner2 = new Scanner(System.in);
for(int i = 0; i < stringArray.length; i++){
stringArray[i] = scanner2.nextLine();
}
for(String s : stringArray){
System.out.println(s);
}
scanner1.close();
scanner2.close();
}
}
Code:
run:
array length: 3
abc
def
ghi
abc
def
ghi
BUILD SUCCESSFUL (total time: 9 seconds)
Muss ich also für jede Lese-Operation ein eigenes Scanner-Objekt erzeugen oder kann man alte Objekte doch irgendwie recyclen?
Ich habe zwar die Methode reset() gesehen, aber die hat anscheinend eine andere Funktion (determiner).
Zuletzt bearbeitet von einem Moderator: