import java.util.*;
public class Solution { /** * 验证IP地址 * @param IP string字符串 一个IP地址字符串 * @return string字符串 */ public String solve (String IP) { //含有"."的,判断是否是IPv4地址 if(IP.indexOf(".")>0){ //通过"."进行分割 String[] strs=IP.split("\."); //如果不是4组,返回"Neither" if(strs.length!=4) return "Neither"; //遍历每一组 for(int i=0;i<strs.length;i++){ //如果某一组的字符不是全部由'0'-'9'范围内字符组成,返回"Neither" for(char c:strs[i].toCharArray()){ if(!(c>='0'&&c<='9')){ return "Neither"; } } //如果大于255,或者第一位是0,而长度不止一位的,返回"Neither" if(Integer.parseInt(strs[i])>255||(strs[i].charAt(0)=='0'&&strs[i].length()>1)) return "Neither"; } return "IPv4"; } //含有":"的,判断是否是IPv6地址 else if(IP.indexOf(":")>0){ //通过":"进行分割 String[] strs=IP.split(":"); //如果不是8组,返回"Neither" if(strs.length!=8) return "Neither"; //遍历每一组 for(int i=0;i<strs.length;i++){ //如果某一组为空,或者长度大于4的,返回"Neither" if(strs[i].equals("")||strs[i].length()>4) return "Neither"; //如果某一组为'0',而该组中'0'的个数不止一个 if(strs[i].equals("00")||strs[i].equals("000")||strs[i].equals("0000")) return "Neither"; } return "IPv6"; }else{ return "Neither"; } } }