我正在为自己编写一个小程序,但遇到了麻烦。

我希望能够在控制台中键入数字,并提取变量的数字。
直到这一点我才明白。

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

当我在控制台中输入了不是数字的内容时,我想得到一个错误。

像这样但可以正常工作的东西:
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");
        }
    }
}

如果输入数字,则可以正常使用。但是我希望能够输入文本并遇到错误,然后重试。

如果您在控制台中输入示例:

1个

回答:

您输入了一个数字!是1.

=====

2564

回答:

您输入了一个数字!是2564。

=====

eaf123

回答:

错误:出了点问题。请再试一遍。

=====

谢谢大家的帮助。

拉尔斯·梅森

最佳答案

这将起作用。希望您了解解决方案。如果解析失败,Integer.parseInt()会抛出NumberFormatException

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");

                }
            }
        }

07-24 09:38