Java 每天一个小bug :判断字符串是否为正整数的正确方法

正确的案例

    public static boolean isNumericZidai(String str) {
        for (int i = 0; i < str.length(); i++) {
            System.out.println(str.charAt(i));
            if (!Character.isDigit(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }

看到有人推荐用 bigdecimal ,但是这个有一个问题就是如果是小数点是判断不了的,同时对于负数也是无法判断,错误的示范如下:


 public static boolean isNumeric(String str) {
        String bigStr;
        try {
             // 错误的写法,不要复制
            bigStr = new Long(str).toString();
        } catch (Exception e) {
            
            return false;
        }
        if (bigStr.length() > maxNum) {
            return false;
        }
        return true;
    }

版权声明:本文为randompeople原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。