题解 | #验证IP地址#

验证IP地址

https://www.nowcoder.com/practice/55fb3c68d08d46119f76ae2df7566880

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 验证IP地址
     * @param IP string字符串 一个IP地址字符串
     * @return string字符串
     */
    public String solve (String IP) {
        //声明:参考别人的代码复现的!!!
	  //用字符串split("\\.", -1);取字符串字串,“\\.”转义字符要加双斜杠,-1是头尾为空也要取空值为子串
        return isValidIPv4(IP) ? "IPv4" : (isValidIPv6(IP) ? "IPv6" : "Neither");
    }

    private boolean isValidIPv4(String IP) {
        String[] nums = IP.split("\\.", -1);
        if (nums.length != 4) return false;
        for (String num : nums) {
            if (num.length() > 1 && num.startsWith("0")) return false;
            try {
                int val = Integer.parseInt(num);
                if (!(val >= 0 && val <= 255)) return false;
            } catch (NumberFormatException numberFormatException) {
                return false;
            }
        }
        return true;
    }

    private boolean isValidIPv6(String IP) {
        String[] strs = IP.split(":", -1);
        if (strs.length != 8) {
            return false;
        }

        for (String str : strs) {
            if (str.length() > 4 || str.length() == 0) {
                return false;
            }
            try {
                int val = Integer.parseInt(str, 16);
            } catch (NumberFormatException numberFormatException) {
                return false;
            }
        }
        return true;
    }
}

全部评论

相关推荐

04-03 12:09
東京大学 C++
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务