发布网友 发布时间:1天前
共1个回答
热心网友 时间:1天前
判断Java中的string变量是否为数字,可以通过多种方法实现。以下为六种常用方法:
1. 使用正则表达式
方法通过编译正则表达式 "[0-9]*" 来识别字符串是否仅由数字组成。
java
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if (!isNum.matches()) {
return false;
}
return true;
2. 利用Java自带函数
该方法循环遍历字符串中的每个字符,检查是否为数字。发现非数字字符则返回false。
java
public static boolean isNumeric(String str) {
for (int i = 0; i < str.length(); i++) {
if (!Character.isDigit(str.charAt(i))) {
return false;
}
}
return true;
}
3. 利用Apache Commons Lang库
此方法同样检查字符串是否仅包含Unicode数字字符。返回true表示字符串为数字,false表示非数字。
java
org.apache.commons.lang.StringUtils;
boolean isNunicodeDigits = StringUtils.isNumeric("aaa1234567");
4. 利用ASCII码值判断
此方法遍历字符串中的每个字符,检查其ASCII码值是否在数字范围内。非数字字符返回false。
java
public static boolean isNumeric0(String str) {
for (int i = str.length(); --i >= 0;) {
int chr = str.charAt(i);
if (chr 48 || chr > 57)
return false;
}
return true;
}
5. 逐个检查字符
此方法使用字符串"01234567"检查字符串中的每个字符是否为数字。非数字字符返回false。
java
public static boolean isNumeric3(String str) {
final String number = "01234567";
for (int i = 0; i < number.length; i++) {
if (number.indexOf(str.charAt(i)) == -1) {
return false;
}
}
return true;
}
6. 捕获NumberFormatException异常
此方法尝试将字符串解析为整数。解析失败时捕获异常,返回false。成功解析则返回true。
java
public static boolean isNumeric00(String str) {
try {
Integer.parseInt(str);
return true;
} catch (NumberFormatException e) {
System.out.println("异常:" + str + "不是数字/整数...");
return false;
}
}