七叶笔记 » java编程 » java使用正则表达式判断传入数据是否为数字

java使用正则表达式判断传入数据是否为数字

可以利用正则表达式来“-?[0-9]+(\\.[0-9]+)?”来做判断字符串是否为数字。

如果传入的数据有很多位,那么使用double会导致精度丢失,这个时候就要用BigDecimal来进行转换。

实例:

    public class CheckStrIsNum {           public static void main(String[] args) {                 double aa = -192322.1212;                String a = "-192322.1212";              String b = "-192322a1212";                 String c = "Java";              String d = "5";                /** 判断是否全为数字 */                                 System.out.println(checkStrIsNum02(Double.toString(aa)));                    System.out.println(checkStrIsNum02(a));                    System.out.println(checkStrIsNum02(b));                    System.out.println(checkStrIsNum02(c));                    System.out.println(checkStrIsNum02(d));         }                private static Pattern NUMBER_PATTERN = Pattern.compile("-?[0-9]+(\\.[0-9]+)?");        /**          * 利用正则表达式来判断字符串是否为数字          */         public static boolean checkStrIsNum02(String str) {             String bigStr;             try {                      /** 先将str转成BigDecimal,然后在转成String */                bigStr = new BigDecimal(str).toString();             } catch (Exception e) {                 /** 如果转换数字失败,说明该str并非全部为数字 */                return false;             }             Matcher isNum = NUMBER_PATTERN.matcher(str);             if (!isNum.matches()) {                    return false;             }              return true;        }    }

推荐教程:java开发入门

相关文章