Android 判断一个字符串是否是ip地址

2020-02-28  本文已影响0人  GODANDDEVIL
/**
     * 判断一个字符串是否是一个合法的ip地址:
     *    1 首先检查字符串的长度 最短应该是0.0.0.0 7位 最长 000.000.000.000 15位
     *    2 按.符号进行拆分,拆分结果应该是4段
     *    3 检查每个字符串是不是都是数字
     */
     boolean isIP(String str){
        // 1、首先检查字符串的长度 最短应该是0.0.0.0 7位 最长 000.000.000.000 15位
        if(str.length()<7 || str.length() >15) return false;
        // 2、按.符号进行拆分,拆分结果应该是4段,"."、"|"、"^"等特殊字符必须用 \ 来进行转义
        // 而在java字符串中,\ 也是个已经被使用的特殊符号,也需要使用 \ 来转义
        String[] arr = str.split("\\.");
        if( arr.length != 4 )    return false;
        // 3、检查每个字符串是不是都是数字,ip地址每一段都是0-255的范围
        for(int i = 0 ; i <4 ; i++ ){
            if (!isNUM(arr[i]) || arr[i].length()==0 || Integer.parseInt(arr[i])>255 || Integer.parseInt(arr[i])<0){
                return false;
            }
        }
        return true;
    }

    /**
     * 判断一个字符串是否是数字
     */
    boolean isNUM(String str){
        Pattern p = Pattern.compile("[0-9]*");
        Matcher m = p.matcher(str);
        return m.matches();
    }

转载自:https://www.jianshu.com/p/52d52feaa105

上一篇下一篇

猜你喜欢

热点阅读