在Java中,如何检查输入是否为数字?

Mis*_*eny 4 java swing parseint

我正在制作一个简单的程序,可以让你添加一个比赛的结果,以及他们用完的秒数.所以为了输入时间,我这样做了:

int time = Integer.parseInt(JOptionPane.showInputDialog("Enter seconds"));
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果他输入的数字不是正数,我怎么能向用户显示错误信息?就像MessageDialog一样,在输入数字之前会给出错误.

Doo*_*nob 11

int time;
try {
    time = Integer.parseInt(JOptionPane.showInputDialog("Enter seconds"));
} catch (NumberFormatException e) {
    //error
}
Run Code Online (Sandbox Code Playgroud)

Integer.parseIntNumberFormatException如果它无法解析,将抛出一个int.如果您只想在输入无效时重试,请将其包装在如下的while循环中:

boolean valid = false;
while (!valid) {
    int time;
    try {
        time = Integer.parseInt(JOptionPane.showInputDialog("Enter seconds"));
        if (time >= 0) valid = true;
    } catch (NumberFormatException e) {
        //error
        JOptionPane.showConfirmDialog("Error, not a number. Please try again.");
    }
}
Run Code Online (Sandbox Code Playgroud)