📅  最后修改于: 2023-12-03 15:32:02.976000             🧑  作者: Mango
在Java中,要检查一个字符串是否是数字,有几种方法。
正则表达式可以用来匹配数字。以下是一个示例代码片段,演示如何使用正则表达式检查字符串是否是数字:
String str = "1234";
if (str.matches("-?\\d+(\\.\\d+)?")) {
System.out.println("是数字");
} else {
System.out.println("不是数字");
}
这个正则表达式匹配整数和浮点数,包括正数和负数。如果字符串 匹配成功,返回 true,否则返回 false。
Java 的 NumberFormatException 异常是一个非受查异常,如果想在运行时检查一个字符串是否是数字,可以使用异常捕获机制。以下是一个示例代码片段:
String str = "1234";
try {
double d = Double.parseDouble(str);
System.out.println("是数字");
} catch (NumberFormatException e) {
System.out.println("不是数字");
}
如果字符串转换为数值成功,则返回“是数字”,否则会抛出 NumberFormatException 异常,被 catch 捕获。
除了 Java 自带的方法之外,还有第三方库可以辅助我们检查字符串是否是数字。例如,Apache Common Lang 库提供了一个方法,可以判断一个字符串是否是数字类型。以下是一个示例代码片段:
import org.apache.commons.lang3.math.NumberUtils;
String str = "1234";
if (NumberUtils.isCreatable(str)) {
System.out.println("是数字");
} else {
System.out.println("不是数字");
}
如果字符串是数字,则返回 true,否则返回 false。
以上是三种检查字符串是否是数字的方法,可以根据具体场景选择合适的方法。