NumberFormatException: для входной строки: ""? - PullRequest
0 голосов
/ 26 июня 2018

Код

int weight = 0;
do {
    System.out.print("Weight (lb): ");
    weight = Integer.parseInt(console.nextLine());
    if (weight <= 0) {
        throw new IllegalArgumentException("Invalid weight.");
    }
} while (weight <= 0);

Traceback

Weight (lb): Exception in thread "main" java.lang.NumberFormatException: For input string: ""
    at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.base/java.lang.Integer.parseInt(Integer.java:662)
    at java.base/java.lang.Integer.parseInt(Integer.java:770)
    at HealthPlan.main(HealthPlan.java:46)

Когда я запускаю свою программу, я получаю это исключение. Как мне с этим справиться?

Я хочу ввести целое число как значение weight. Я также должен использовать целочисленное значение для height, но моя программа запрашивает ввод, который также равен boolean s и character s.

Кто-то предложил мне использовать Integer.parseInt.

Если мне нужно опубликовать больше кода, я буду рад сделать это.

1 Ответ

0 голосов
/ 26 июня 2018

В этом случае вы можете преобразовать строку только в целое число.

Integer.parseInt("345")

но не в этом случае

Integer.parseInt("abc")

Эта строка дает исключение Integer.parseInt(console.nextLine());

Вместо этого используйте это Integer.parseInt(console.nextInt());

...