Java中怎样判断一个字符串是否是数字?

如题所述

用正则表达式

public static boolean isNumericzidai(String str) {
Pattern pattern = Pattern.compile("-?[0-9]+.?[0-9]+");
Matcher isNum = pattern.matcher(str);        if (!isNum.matches()) {            return false;
}        return true;
}12345678

网上给出的最好的方法,可惜还是错误;首先正则表达式-?[0-9]+.?[0-9]+这里就错误 
网上说:可匹配所有数字。 
比如:

double aa = -19162431.1254;
String a = "-19162431.1254";
String b = "-19162431a1254";
String c = "中文";
System.out.println(isNumericzidai(Double.toString(aa)));
System.out.println(isNumericzidai(a));
System.out.println(isNumericzidai(b));
System.out.println(isNumericzidai(c));12345678

结果

falsetruetruefalse1234

正确的正则表达式是:-?[0-9]+\\.?[0-9]*,点号.,是匹配任意字符,需要进行转义。

温馨提示:答案为网友推荐,仅供参考
相似回答