判断一个字符串是否可以转换为数字(包括小数及正负),写一个正则表达式判断:
package com.test;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test1 {
public static boolean regex(String content) {
String pattern = "^[\\+\\-]?[\\d]+(\\.[\\d]+)?$";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(content);
return m.matches();
}
public static void main(String[] args) {
String[] tests = new String[] {
"0", "0.4", "2.888888",
"+0.4", "-0.4", "-2.88888",
"4nm", "-4nm", "+4nm", "+4.nm", "-4.nm",
"4年4个省市", "+4年4个省市", "-4年4个省市",
"4.4个省市", "+4.4个省市", "-4.4个省市"
}; //部分测试用例
for (String string : tests) {
System.out.println(string + " : " + regex(string));
}
}
}
运行截图: