【实例描述】
软件运行过程中,经常需要用户输入数值、货币值等信息,然后进行处理。由于用户输入
只能是字符串类型,如果输入了非法的信息,如在货币值中输入了字母“a”以及其他非数字
字符,那么在运行时会抛出异常。通常我们可以通过捕获异常来判断输入信息是否合法,但这
并不是最好的处理方法。本实例将采用NumberUtils
类中的方法处理此问题,让程序更加快捷
方便。实例的运行效果如图4.11 所示。
【实现过程】
在Eclipse 中新建项目CheckNumber,并在其中创建一个CheckNumber.java
文件。在该类
的主方法中创建标准输入流的扫描器对象,接收用户输入的金额。程序将对其是否为数字进行
判断并输出提示结果。核心代码如下所示:
protected
void do_button_actionPerformed(ActionEvent e) {
String text =
textField.getText(); // 获取用户输入的金额字符串
boolean isnum =
NumberUtils.isNumber(text); // 判断是不是数字
if (isnum) { //
输出正确提示信息
showMessageDialog(null, "输入正确,是数字格式");
} else { //
输出错误提示信息
showMessageDialog(null,
"输入错误,请确认格式再输入");
}
}
【代码解析】
本实例采用了Apache 提供的lang 包中的NumberUtils
类来实现数字判断,该类的全路径
为“org.apache.commom.lang.math.NumberUtils”,这个类中的isNumber()方法可以接收字符串
参数,然后对字符串进行解析,如果字符串不能转换为数字格式,则返回false。其声明语法如
下所示:
public
static boolean isNumber(String str);
【知识扩展】
本实例还可以通过Double
类的parseDouble()方法把字符串转换为double
类型。如果抛出
异常说明字符串不是合法数字格式。但是建议不要使用这种方式做判断,那会降低系统的运行
速度。因为它无法与简单逻辑判断相比,后者在速度上完全超越前者。