Cómo usar BufferedReader para obtener un número entero

Lars02_:

Estoy escribiendo un pequeño programa para mí y me encuentro con un problema.

Quiero ser capaz de escribir un número en la consola, y extraer el número de una variable. Hasta este punto lo tengo.

int aNumber = Integer.parseInt(br.readLine());

Excepto que yo quiero conseguir un error cuando hay algo entrado en la consola que no es un número.

Algo como esto, pero por supuesto que trabaja:

void Test() {
    while (true) {
        try {
            aNumber = Integer.parseInt(br.readLine());
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (aNumber >= 1) {
            System.out.println("Hurray you enterd a number! It is " + aNumber + ".");
            return;
        } else {
            System.out.println("Error: Something went wrong. Please try again.\n");
        }
    }
}

Si introduce un número que trabaja muy bien. Pero yo quiero ser capaz de introducir textos y conseguir un error para volver a intentarlo.

Ejemplo si escribe en la consola:

1

Responder:

Hurra que enterd un número! Es 1.

=====

2564

Responder:

Hurra que enterd un número! Es 2564.

=====

eaf123

Responder:

Error: Algo salió mal. Inténtalo de nuevo.

=====

Gracias por todo el mundo tratando de ayudar.

Lars Meeuwsen

Igor Khvostenkov:

Esto funcionará. Espero que comprendan la solución. Integer.parseInt()lanza NumberFormatExceptionen caso de fallo de análisis.

void test() {
            while (true) {
                int aNumber;
                try {
                    aNumber = Integer.parseInt(br.readLine());
                    System.out.println("Hurray you enterd a number! It is " + aNumber + ".");
                    return;
                } catch (NumberFormatException | IOException e) {
                    System.out.println("Error: Something went wrong. Please try again.\n");

                }
            }
        }

Supongo que te gusta

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