我有:
op1 = Integer.parseInt(jTextField1.getText());
op2 = Integer.parseInt(jTextField2.getText());
但是,我想首先检查文本字段的值是否可以分配给整数变量。我该怎么做?
我已经经历了很长时间了,所以,如果这里已经问过这个问题,请原谅我
做if (int i = 0)
,因为赋值返回赋值(在本例中为0
),并且if
期望一个计算结果为 true
或 false
的表达式。
另一方面,如果您的目标是检查jTextField.getText()
是否返回一个可以解析为int
的数值,您可以尝试进行解析,如果该值不合适,则会提高NumberFormatException
,让您知道。
try {
op1 = Integer.parseInt(jTextField1.getText());
} catch (NumberFormatException e) {
System.out.println("Wrong number");
op1 = 0;
}
我有用。只是为了识别字符串是基元还是数字。
private boolean isPrimitive(String value){
boolean status=true;
if(value.length()<1)
return false;
for(int i = 0;i<value.length();i++){
char c=value.charAt(i);
if(Character.isDigit(c) || c=='.'){
}else{
status=false;
break;
}
}
return status;
}
parseInt 如果无法将字符串转换为 int,则会抛出 NumberFormatException。因此,您应该用 try catch 块包围 parseInt 调用并捕获该异常。
基本上,您必须决定检查给定字符串是否是有效的整数,或者您只是假设给定字符串是有效的整数,并且在解析时可能会发生异常。