Pregunta

I want to exit a loop just by pressing Enter. How to do this? Now the loop exits when I enter any nonnumeric value and press Enter. How to exit by entering nothing and pressing Enter?

ArrayList<Integer> numbers = new ArrayList<Integer>();
int numberIn;
Scanner scan = new Scanner(System.in);
System.out.println("Enter numbers!");

while (scan.hasNextInt()) {
    numberIn = scan.nextInt();
    numbers.add(numberIn);
}

System.out.println("Numbers: " + numbers + ".");
¿Fue útil?

Solución

This works for me:

ArrayList<Integer> numbers = new ArrayList<Integer>();
int numberIn;
Scanner scan = new Scanner(System.in);
System.out.println("Enter numbers!");

String input;
while (!(input = scan.nextLine()).isEmpty()) {
    numberIn = Integer.parseInt(input);
    numbers.add(numberIn);
}

System.out.println("Numbers: " + numbers + ".");

Otros consejos

Try hasNext():

while (scan.hasNext("\\d+")) {
    numberIn = scan.nextInt();
    numbers.add(numberIn);
}
ArrayList<Integer> numbers = new ArrayList<Integer>();
int numberIn;
Scanner scan = new Scanner(System.in);
System.out.println("Enter numbers!");

String input;
while (!(input = scan.nextLine()).isEmpty()) {
    numberIn = Integer.parseInt(input);
    numbers.add(numberIn);
}

System.out.println("Numbers: " + numbers + ".");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top