IP 地址是分配给参与使用 Internet 协议进行通信的计算机网络的每个设备(例如,计算机、打印机)的数字标签。Internet 协议有两个版本,因此地址也有两个版本。其中之一是 IPv4 地址。
IPv4 地址以点十进制表示法表示,它由四个十进制数字组成,每个数字的范围从 0 到 255(含),用点分隔,例如 172.16.254.1。
对于 inputString = "172.16.254.1",输出应该是 isIPv4Address(inputString) = true;
对于 inputString = "172.316.254.1",输出应该是 isIPv4Address(inputString) = false
这是我的解决方案:
boolean isIPv4Address(String inputString) {
String splitparts[] = inputString.split("[.]");
if(splitparts.length != 4){
return false;
}
for(String part : splitparts){
if(part.isEmpty())
return false;
if(!part.matches("[0,9]{1,3}"))
return false;
if(!(Integer.parseInt(part)>=0 && Integer.parseInt(part)<=255))
return false;
}
return true;
}
我的解决方案在所有情况下都返回 false,我无法找出错误的原因。如果有人审查我的代码并向我解释为什么它只返回错误,那就太好了。