题解 | #验证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) {
        System.out.println(IP);
        String[] ipv4 = IP.split("\\.");
        if (ipv4.length == 4) {
            for (String s : ipv4) {
                if (s.length() < 1) {
                    return "Neither";
                }
                if (s.startsWith("0") && s.length() > 1) {
                    return "Neither";
                }
                for (char c : s.toCharArray()) {
                    if (!Character.isDigit(c)) {
                        return "Neither";
                    }
                }
                if (s.length() > 3 || Integer.parseInt(s) > 255) {
                    return "Neither";
                }
            }
            return "IPv4";
        }
        String[] ipv6 = IP.split(":", -1);
        if (ipv6.length == 8) {
            for (String s : ipv6) {
                if (s.length() < 1 || s.length() > 4) {
                    return "Neither";
                }
                for (char c : s.toCharArray()) {
                    if (Character.isAlphabetic(c) && Character.toLowerCase(c) > 'f') {
                        return "Neither";
                    }
                }
            }
            return "IPv6";
        }
        return "Neither";
    }
}

有两个坑需要注意一下:

  • split(".")无效,需要split("\\.")
  • split(".")如法分割1.1.1.1.或者1:1:1:1:这样最后还有一个分隔符的情况,需要split(".", -1),传入参数-1才行
全部评论

相关推荐

每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务