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