gpt4 book ai didi

java - 给定一个字符串,找出它是否满足IPv4地址命名规则(代码审查)而不是寻找其他解决方案

转载 作者:行者123 更新时间:2023-12-02 11:06:13 25 4
gpt4 key购买 nike

IP 地址是分配给参与使用 Internet 协议(protocol)进行通信的计算机网络的每个设备(例如计算机、打印机)的数字标签。互联网协议(protocol)有两个版本,因此地址也有两个版本。其中之一是 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,并且我无法找出错误的原因。如果有人审查我的代码并向我解释为什么它只返回 false,那就太好了。

最佳答案

你的问题出在[0,9]{1,3}。在 [] block 内,您应该使用 - 来指示范围。应该是[0-9]{1,3}。它在字符串中查找一行中的 1 到 3 个字符,这些字符可以是 "0"、文字字符串 ","或 "9"。如果您希望它只接受 1 到 3 个字符长的字符串,您可以这样做:

^[0-9]{1,3}$

^ 表示开始,$ 表示结束。

关于java - 给定一个字符串,找出它是否满足IPv4地址命名规则(代码审查)而不是寻找其他解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50936518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com