在项目开发过程中,经常会遇到这样的情况,需要判断一个字符串是否是一个合法的数,包括整数,小数或者实数等(有人推荐进行类型转换时,利用异常来判断,个人觉得有违异常设计的初衷,不太可取),或是判断是否符合相关惯例(例如手机号,身份证号等这些无法使用异常判断来处理),在java中去条件判断比较复杂,考虑使用正则表达式来完成,一些常用的表达式,百度一下基本上都会有,免去了复杂的判断,省时省力。
/**
* 正则表达式判断
* @param regex 正则表达式
* @param orginal 被验证数值
* @return
*/
public static boolean isMatch(String regex, String orginal){
if (orginal == null || orginal.trim().equals("")) {
return false;
}
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(regex);
java.util.regex.Matcher isNum = pattern.matcher(orginal);
return isNum.matches();
}
public static void main(String[] arg){
System.out.println(isMatch("^\\+{0,1}[1-9]\\d*", "5"));;
}