检查输入值是否为整数类型java

Edg*_*ars 1 java validation input

我要求用户输入他需要写整数的地方.我设法创建验证,检查值是否高于所需值,因此,使用以下代码:

int n = sca.nextInt(); 
while (n<=0){
    System.err.println(error_1);
    n = sca.nextInt(); 
}                    
Run Code Online (Sandbox Code Playgroud)

但是现在如何添加字符串检查,我找到了这样的解决方案当输入错误的类型时,如何防止扫描程序抛出异常?

hasNextInt()在实际读取输入之前使用它,我试图把这个检查放在同一个地方的循环中,n<=0就像这样

while ( (n<=0)||(sca.hasNextInt() )) {
  ....
}
Run Code Online (Sandbox Code Playgroud)

但它回答错误,变量n与该方法不兼容.那么有什么方法可以克服这种事情吗?

Art*_*ski 5

您可以使用parseInt并检查异常:

public boolean parseWithFallback(String text) {
try {
  Integer.parseInt(text);
  return true;
} catch (NumberFormatException e) {
 return false;
 } 
}
Run Code Online (Sandbox Code Playgroud)