如何检查字符串是否为有效整数



我有:

 op1 = Integer.parseInt(jTextField1.getText());
 op2 = Integer.parseInt(jTextField2.getText());

但是,我想首先检查文本字段的值是否可以分配给整数变量。我该怎么做?

我已经经历了很长时间了,所以,如果这里已经问过这个问题,请原谅我

你不能

if (int i = 0),因为赋值返回赋值(在本例中为0),并且if期望一个计算结果为 truefalse 的表达式。

另一方面,如果您的目标是检查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 调用并捕获该异常。

基本上,您必须决定检查给定字符串是否是有效的整数,或者您只是假设给定字符串是有效的整数,并且在解析时可能会发生异常。

最新更新