一、使用正则表达式
public static boolean isNumeric(String str) {
if (str == null || str.length() == 0) {
return false;
}
return str.matches("-?[0-9]+.?[0-9]*");
}正则表达式可以检测字符串是否为数字类型,其中“-?”表示可选的负号,”[0-9]+”表示一串数字,”.?[0-9]*”表示可选的小数部分。
二、使用Java内置函数
public static boolean isNumeric(String str) {
if (str == null || str.length() == 0) {
return false;
}
try {
Double.parseDouble(str);
return true;
} catch (NumberFormatException e) {
return false;
}
}使用Java内置函数Double.parseDouble()可以直接将字符串转成Double类型,如果转换成功则说明字符串为数字类型,否则会抛出NumberFormatException错误。
三、使用Apache Commons Lang库
public static boolean isNumeric(String str) {
if (str == null || str.length() == 0) {
return false;
}
return NumberUtils.isNumber(str);
}Apache Commons Lang库提供了NumberUtils.isNumber()方法,可以判断字符串是否为数字类型。
四、使用正整数/负整数/小数判断
public static boolean isPositiveInteger(String str) {
if (str == null || str.length() == 0) {
return false;
}
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isPositiveInteger = pattern.matcher(str);
return isPositiveInteger.matches();
}
public static boolean isNegativeInteger(String str) {
if (str == null || str.length() == 0) {
return false;
}
Pattern pattern = Pattern.compile("^-[0-9]*$");
Matcher isNegativeInteger = pattern.matcher(str);
return isNegativeInteger.matches();
}
public static boolean isDecimal(String str){
if(str == null || str.length() == 0){
return false;
}
Pattern pattern = Pattern.compile("^[-+]?[0-9]+(\\.[0-9]+)?$");
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}根据需要判断字符串是否正整数/负整数/小数类型,使用正则表达式可以轻松实现。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/180269.html
微信扫一扫
支付宝扫一扫