我做了一些简单的代码,它应该工作得很好。问题是,它没有。我花了一些时间弄清楚数字格式异常的原因是什么。显然,当我尝试输入字母而不是数字时,它应该要求我再次重新输入,但它崩溃了。但是当我删除 e.printStackTrace(); 它工作得很好。有人能告诉我为什么吗?
import java.util.Scanner;
public class Test {
public static boolean isInteger(String strNumber) {
try {
int number = Integer.parseInt(strNumber);
if(number > 0) {
return true;
}
return false;
} catch (NumberFormatException e) {
e.printStackTrace();
return false;
}
}
public static void main(String[] args) {
String numberString = null;
int number = 0;
Scanner scanner = new Scanner(System.in);
do {
System.out.println("Enter integer:");
numberString = scanner.nextLine();
} while(!isInteger(numberString));
number = Integer.parseInt(numberString);
System.out.println("Your number is: " + number);
scanner.close();
}
}