我有一个 JTextField 对象,用户可以在其中输入数字(或任何内容)。我正在尝试解析此文本字段中的数字,并进行验证检查以查看该数字是否在特定范围内 (1-999)。
String lowerLimit = this.lowerLimitTextField.getText().trim();
String upperLimit = this.upperLimitTextField.getText().trim();
if( Integer.parseInt(lowerLimit) < 1 || Integer.parseInt(upperLimit) > 999 )
{
return "The string must be in the range 0-999";
}
我的问题是,用户可以在文本字段中指定任何值。当我尝试输入“61412356123125124”之类的内容时,我在解析字符串时收到 NumberFormatException 。处理这种情况最简单的方法是什么?我确实有一个检查,确保输入的字符串都是数字,所以没问题。
我尝试将 parseInt() 更改为 parseLong() 但仍然遇到相同的问题,因为输入的数字本质上是无界的。这可以通过解析字符串来完成(首选),还是对 JTextField 本身设置一些约束的最简单方法?
最佳答案
使用NumberFormat
解析
import java.text.NumberFormat;
import java.text.ParseException;
public class MyVisitor {
public static void main(String[] args) throws ParseException {
System.out.println(NumberFormat.getNumberInstance().parse("61412356123125124"));
}
}
输出
61412356123125124
关于java - Java中大整数的解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25936617/