import java.util.*; public class Solution { /** * 验证IP地址 * @param IP string字符串 一个IP地址字符串 * @return string字符串 */ public String solve (String IP) { // write code here if(isIPv4(IP)){ return "IPv4"; }else if(isIPv6(IP)){ return "IPv6"; }else{ return "Neither"; } } Boolean isIPv4(String IP){ String []strs = IP.split("\\.", -1); if(strs.length != 4) return false; for(int i = 0; i < 4; i++){ // validate str[i] int len = strs[i].length(); if(len == 0) return false; if(len > 1 && strs[i].charAt(0) == '0') return false; for(int j = 0; j < len; j++){ if(strs[i].charAt(j) < '0' || strs[i].charAt(j) > '9') return false; } if(len >= 1){ int num = Integer.valueOf(strs[i]); if(num < 0 || num > 255) return false; } } return true; } Boolean isIPv6(String IP){ String []strs = IP.split("\\:", -1); if(strs.length != 8) return false; for(int i = 0; i < 8; i++){ // validate str[i] int len = strs[i].length(); if(len == 0 || len > 4) return false; for(int j = 0; j < len; j++){ if(strs[i].charAt(j) >= '0' && strs[i].charAt(j) <= '9' || strs[i].charAt(j) >= 'A' && strs[i].charAt(j) <= 'F' || strs[i].charAt(j) >= 'a' && strs[i].charAt(j) <= 'f' ) continue; else return false; } } return true; } }