java判断一个字符串是不是数
时间: 2023-11-15 11:06:26 浏览: 79
在 Java 中,可以通过以下方法判断一个字符串是否为数:
1. 使用正则表达式判断
可以使用正则表达式来判断一个字符串是否为数,以下是示例代码:
```
public static boolean isNumeric(String str) {
if (str == null || str.length() == 0) {
return false;
}
return str.matches("-?\\d+(\\.\\d+)?");
}
```
上述代码中,使用 matches 方法和正则表达式 "-?\\d+(\\.\\d+)?" 来判断字符串是否为数。其中,正则表达式表示:
- ? 表示前面的符号可以出现 0 或 1 次
- \d 表示数字
- + 表示前面的符号可以出现 1 次或多次
- \. 表示小数点
- () 表示一个组
因此,"-?\\d+(\\.\\d+)?" 表示匹配整数或小数,可以带正负号。
2. 使用 Java 内置函数判断
Java 中提供了一些内置函数可以判断字符串是否为数,以下是示例代码:
```
public static boolean isNumeric(String str) {
if (str == null || str.length() == 0) {
return false;
}
try {
double d = Double.parseDouble(str);
} catch (NumberFormatException nfe) {
return false;
}
return true;
}
```
上述代码中,使用 Double.parseDouble 方法将字符串转换成 double 类型。如果转换成功,则说明该字符串为数;否则,抛出 NumberFormatException 异常,说明该字符串不是数。
请注意,以上代码只能判断字符串是否符合数的格式,不能判断该数是否在数值范围之内。例如,"9999999999999999999999999999999999999999999999999999" 是一个符合数格式的字符串,但超出了 double 类型的范围,会导致转换失败。
阅读全文