Java-468. 验证IP地址-奥力给

验证IP地址

http://www.nowcoder.com/questionTerminal/55fb3c68d08d46119f76ae2df7566880

  • 算法
    • 1.分别验证IPv4和IPv6
    • 2.注意事项
      • 2.1 分割字符串时,使用limit = -1的split函数,使得字符串末尾或开头有一个'.'或':'也能分割出空的字符串
      • 2.2 使用Integer.parseInt()函数检查异常
public String validIPAddress(String IP) {
    return validIPv4(IP) ? "IPv4" : (validIPv6(IP) ? "IPv6" : "Neither");
}

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

    for (String str : strs) {
        if (str.length() > 1 && str.startsWith("0")) {
            return false;
        }
        try {
            int val = Integer.parseInt(str);
            if (!(val >= 0 && val <= 255)) {
                return false;
            }
        } catch (NumberFormatException numberFormatException) {
            return false;
        }
    }
    return true;
}

private boolean validIPv6(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;
}
LeetCode题解 文章被收录于专栏

测试

全部评论
try { //多余的 0 也是不被允许的 if(str.length()>1 && Integer.parseInt(str,16)==0) return false; //int i = Integer.parseInt(str,16);//16进制的 }catch (NumberFormatException e){ return false; }
1
送花
回复
分享
发布于 2022-11-22 18:35 陕西
优雅
点赞
送花
回复
分享
发布于 2021-10-08 09:52
秋招专场
校招火热招聘中
官网直投
优雅
点赞
送花
回复
分享
发布于 2022-03-14 20:59
优雅
点赞
送花
回复
分享
发布于 2022-04-10 12:11
优雅
点赞
送花
回复
分享
发布于 2023-03-04 15:40 上海
优雅
点赞
送花
回复
分享
发布于 04-16 16:39 广东

相关推荐

_hengheng:美赛啥时候有三等奖了,蓝桥杯优秀奖最好也别写,知道的面试官看了容易出事,能有菊厂实习也不算菜了
点赞 评论 收藏
转发
47 4 评论
分享
牛客网
牛客企业服务