我需要检查文本字段(ID)是否包含除数值之外的任何内容。我正在将文本字段中的字符串解析为int。我尝试使用try-catch块捕获错误,但每次该字段除了int之外都有其他内容,它会显示错误消息并终止整个程序。我希望用户能够返回并编辑ID字段。
try{
int id = Integer.parseInt(fieldID.getText());
}
catch(NumberFormatException e2){
JOptionPane.showMessageDialog(null, "Please enter a valid ID","Alert!", JOptionPane.ERROR_MESSAGE);
}
答案 0 :(得分:1)
使用正则表达式
String regex = "\\d+";
然后
System.out.println(myString.matches(regex));
您的最终片段可能看起来像
fieldID.getText().matches(regex));
答案 1 :(得分:0)
尝试更改catch语句以捕获任何异常,而不管类型
catch (Exception e2){
查看错误的堆栈跟踪会很有帮助。
答案 2 :(得分:0)
为什么不限制数字输入字段!!然后你不会有这样的麻烦去尝试抓住它。 查看此答案:https://stackoverflow.com/a/8017847/2356808