题目

image.png

思路

  • 思路一:暴力根据规则验证

    代码

    1. public String validIPAddress(String IP) {
    2. String[] ipv4 = IP.split("\\.");
    3. String[] ipv6 = IP.split(":");
    4. if (ipv4.length == 4 && IP.charAt(0) != '.' && IP.charAt(IP.length() - 1) != '.') {
    5. for (String s : ipv4) {
    6. if (s.length() == 0 || s.length() >= 4
    7. || s.charAt(0) == '0' && s.length() > 1) return "Neither";
    8. int num = 0;
    9. for (int i = 0; i < s.length(); i++) {
    10. char ch = s.charAt(i);
    11. if (ch < '0' || ch > '9') return "Neither";
    12. num = num * 10 + ch - '0';
    13. }
    14. if (num >= 256) return "Neither";
    15. }
    16. return "IPv4";
    17. }
    18. if (ipv6.length == 8 && IP.length() >= 15 && IP.charAt(0) != ':'
    19. && IP.charAt(IP.length() - 1) != ':') {
    20. for (String s : ipv6) {
    21. if (s.length() == 0 || s.length() > 4) return "Neither";
    22. for (int i = 0; i < s.length(); i++) {
    23. char ch = s.charAt(i);
    24. if (!(ch >= '0' && ch <= '9' || ch >= 'A' && ch <= 'F'
    25. || ch >= 'a' && ch <= 'f')) return "Neither";
    26. }
    27. }
    28. return "IPv6";
    29. }
    30. return "Neither";
    31. }
    验证IP地址