So fügen Sie einer Warteschlange Scannereingaben hinzu und verlassen die Schleife, nachdem die Eingabe gelesen wurde [duplizieren]

Nov 25 2020

Ich versuche, Scannereingaben zu einer hinzuzufügen ArrayList, kann die Schleife jedoch nicht verlassen, nachdem ich die Eingaben eingegeben habe. Wie kann ich diese Schleife verlassen, nachdem ich die Eingaben eingegeben habe?

ArrayList<String> inputs = new ArrayList<>();
int i = 0;
while(scan.hasNext()){//while there is an hasNext
    inputs.add(scan.next());// add to the inputs array of queue
    i++;
}scan.close()

;;

Antworten

2 SashSinha Nov 25 2020 at 07:50

Sie können überprüfen, ob der Benutzer eine Zeichenfolge mit einer Länge von eingegeben hat 0, dh "", dass dies erledigt ist:

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<>();
        System.out.println("Enter input:");
        String input = "";
        try (Scanner scan = new Scanner(System.in)) {
            while (scan.hasNextLine()
                    && (input = scan.nextLine()).length() != 0) {
                queue.add(input);
            }
        }
        System.out.printf("Queue: %s%n", queue);
    }
}

Anwendungsbeispiel:

Enter input:
A
B
C

Queue: [A, B, C]