java如何判断一个字符串里的数字是整数还是小数
例: String a = "1235.2342"; String b = "782"; String c = "ss123";
可以用下面进行判断是否是数值,但是能不能判断出 如果是数值,就返回是什么类型呢(int 或者 double)。
//判断是否是字符 public static boolean isNum(String str){ return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$"); }
判断是整数,
public static boolean isDigits(String str) { return str.matches("[-+]?[0-9]*"); }
** * 正则表达式可能不严谨(写的比较唐突) * @param source * @return 返回0表示非数值,返回1表示是int型,返回2表示是double型 */ public static int type(String source){ int result = 0; String regex1 = "^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$"; boolean flag1 = source.matches(regex1); if(flag1){ String regex2 = "^[-+]?([0-9]+)$"; boolean flag2 = source.matches(regex2); if(flag2){ result = 1; } else{ result = 2; } } return result; }
|