题解 | #验证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; } }