用JAVA自带的函数判断,其中Character.isDigit方法:确定或判断指定字符是否是一个数字。
public static boolean isNumericZidai(String str) {
for (int i = 0; i < str.length(); i++) {
System.out.println(str.charAt(i));
if (!Character.isDigit(str.charAt(i))) {
return false;
}
}
return true;
}
正确的通用代码(传入包含中文、负数、位数很长的数字的字符串也能正常匹配):
/**
* 匹配是否包含数字
* @param str 可能为中文,也可能是-19162431.1254,不使用BigDecimal的话,变成-1.91624311254E7
* @return
* @author yutao
* @date 2016年11月14日下午7:41:22
*/
public static boolean isNumeric(String str) {
// 该正则表达式可以匹配所有的数字 包括负数
Pattern pattern = Pattern.compile("-?[0-9]+\\.?[0-9]*");
有可能是小数哦,所以Integer不合适,还是自己写个方法吧,不如把String每个字节进行for循环,如果
不属于
【0,1,2,3,4,5,6,7,8,9,+,-,.】就是错的,当然还要考虑两个“.”两个“++”的情况