Cómo determinar cuándo se ha ingresaba al número entero? Java

Rosa Doherty:

En este momento tengo que introducir una letra para detener el bucle while e imprimir la lista de números. ¿Hay una mejor manera de determinar cuándo se ha introducido el último int?

` Scanner scanner = new Scanner(System.in);
            System.out.println("Enter a sequence of integer values" +
                    " to be sent to the server");
            List<Integer> numberList = new ArrayList<Integer>();
            while(scanner.hasNextInt()) {
                numberList.add(scanner.nextInt());
            }
            System.out.println(numberList);
            os.write(String.valueOf(numberList));
            scanner.close();`
Arvind Kumar Avinash:

Hacerlo de la siguiente manera:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Program {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter a sequence of integer values to be sent to the server (x to terminate)");
        List<Integer> numberList = new ArrayList<Integer>();
        String[] data = scanner.nextLine().split(" ");
        int i = 0;
        while (i < data.length && data[i].matches("\\d+")) {// The regex \d+ matches only integers
            numberList.add(Integer.parseInt(data[i]));
            i++;
        }
        System.out.println(numberList);
    }
}

Un análisis de la muestra:

Enter a sequence of integer values to be sent to the server (x to terminate)
10 20 30 X
[10, 20, 30]

Además, no cierre Scannerpor System.inlo que también se cierra System.intambién.

Siéntase libre de comentar en caso de duda / problema.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=410131&siteId=1
Recomendado
Clasificación