我有:
op1 = Integer.parseInt(jTextField1.getText());
op2 = Integer.parseInt(jTextField2.getText());
但是,我想首先检查文本字段的值是否可以分配给整数变量。我该怎么做?
我已经经历了很长一段时间,所以,如果这已经在这里被问过,请原谅我
答案 0 :(得分:16)
您无法执行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;
}
答案 1 :(得分:2)
这对我有用。只需识别String是基元还是数字。
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;
}
&#13;
答案 2 :(得分:1)
如果parseInt无法将String转换为int,则抛出NumberFormatException。因此,您应该使用try catch块包围parseInt调用并捕获该异常。
答案 3 :(得分:0)
基本上,您必须决定检查给定字符串是否是有效整数,或者您只是假设给定字符串是有效整数,并且在解析时可能发生异常。