import java.util.*; public class Solution { // 做起来比较费事,需要考虑到各种异常情况 // 验证输入的字符串是否是有效的IPv4或IPv6 public String solve (String IP) { // write code here int length = IP.length(); if(length > 15){ if(IPv6(IP)){ return "IPv6"; } }else{ if(IPv4(IP)){ return "IPv4"; } } return "Neither"; } public boolean IPv4(String IP){ String[] strs = IP.split("\\."); if(strs.length != 4){ return false; } for(String str : strs){ if(str.charAt(0) == '0'){ return false; } try{ int num = Integer.parseInt(str); if(num >= 255 || num < 0){ return false; } } catch(Exception e){ return false; } } return true; } public boolean IPv6(String IP){ if(IP.charAt(IP.length() - 1) == ':'){ return false; } String[] strs = IP.split(":"); if(strs.length != 8){ return false; } for(String str : strs){ if(str.length() > 4 || str.length() == 0){ return false; } if(str.length() == 1 && !str.equals("0")){ return false; } try{ int max = Integer.parseInt("FFFF", 16); int min = 0; int num = Integer.parseInt(str, 16); if(num >= max || num < 0){ return false; } }catch(Exception e){ return false; } } return true; } }