Dieses Programm erhält Benutzereingaben für 2 Teams und 2 Ergebnisse, trennt sie mit dem Trennzeichen ":" und speichert sie im Array. Wenn der Benutzer das Wort "stop" eingibt, wird keine Benutzereingabe mehr angefordert und soll die Ergebnisse und Statistiken des Spiels anzeigen (die noch nicht in den Code eingefügt wurden). Das Problem, das ich habe, ist, wenn ich mehr als eine Zeile der Übereinstimmungsergebnisse eintippe und dann 'stop' tippe, es zeigt nur die erste Linie der Benutzereingabe zurück zur Konsole und nicht irgendwelche der anderen an? Eingabebeispiel: "Chelsea: Arsenal: 2: 1".Anzeige mehrerer Array-Variablen
public static final String SENTINEL = "stop";
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
String hometeam = new String();
String awayteam = new String();
String homescore = new String();
String awayscore = new String();
int result0;
int result1;
System.out.println("please enter match results:");
// loop, wil ask for match results (b <())
for (int b = 0; b < 100; b++) {
String s = sc.nextLine();
// stop command
while (sc.hasNextLine()) { // better than the for loop
String line = sc.nextLine();
String results[] = s.split(" : "); // parse strings in between
// the
for (String temp : results) {
hometeam = results[0];
awayteam = results[1];
homescore = results[2];
awayscore = results[3];
}
// convert 'score' strings to int value.
result0 = Integer.valueOf(results[2]);
result1 = Integer.valueOf(results[3]);
if ("stop".equals(line)) {
System.out.println(Arrays.toString(results));
return; // exit
}
Du deklarieren und Initialisieren ** ergibt ** bei jeder Iteration von ** while ** Anweisung, so ist es immer anders. – luizfzs
Warum 'for (String temp: results) {'? – Yonlif
Ich habe das aus einer anderen stackoverflow Frage und es hat funktioniert, also habe ich es einfach in –