题解 | #验证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) {
// write code here
if (isIpv4(IP))
return "IPv4";
else if (isIpv6(IP))
return "IPv6";
return "Neither";
}
public boolean isIpv4(String IP) {
try {
if (IP == null || "".equals(IP)) {
return false;
}
String[] ipv4Array = IP.split("\\.");
if (ipv4Array.length != 4) {
return false;
}
for (int i = 0; i < ipv4Array.length; i++) {
int parseInt = Integer.parseInt(ipv4Array[i]);
if (parseInt > 255) {
return false;
}
//不是零开头
if (!ipv4Array[i].equals(String.valueOf(parseInt))) {
return false;
}
}
return true;
} catch (NumberFormatException e) {
return false;
}
}
public boolean isIpv6(String IP) {
try {
if (IP == null || "".equals(IP)) {
return false;
}
if (IP.indexOf("::") > 0) {
return false;
}
//这个IP.split(":",-1); 坑死我了,我一直写的是IP.split(":");
String[] ipv6Array = IP.split("\\:",-1);
if (ipv6Array.length != 8) {
return false;
}
for (int i = 0; i < ipv6Array.length; i++) {
if (ipv6Array[i].length() > 4 || ipv6Array[i].length() == 0) {
return false;
}
if (!isValidString(ipv6Array[i])) {
return false;
}
}
return true;
} catch (NumberFormatException e) {
return false;
}
}
public boolean isValidString(String input) {
return !input.isEmpty() && input.matches("[0-9A-Fa-f]+");
}
}
顺丰集团工作强度 274人发布
