JAVA判断正确ip号
发布网友
发布时间:2022-04-24 17:34
我来回答
共4个回答
热心网友
时间:2023-10-26 20:29
没必要判断的那么细,用正则表达式
public class $ {
public static void main(String[] args) {
String str1 = "a.b.c.d";
String str2 = "1.1.1.1";
String str3 = "1.1.1.256";
String str4 = "192.168.1.1";
String regex = "(2[5][0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\.(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})";
System.out.println(str1.matches(regex));
System.out.println(str2.matches(regex));
System.out.println(str3.matches(regex));
System.out.println(str4.matches(regex));
}
}
false
true
false
true
热心网友
时间:2023-10-26 20:29
一般不这么判断,太麻烦了,用正则表达式
直接用这个方法
public bool IsValidIP(string strIP)
{
if (System.Text.RegularExpressions.Regex.IsMatch(strIP, "[0-9]{1,3}//.[0-9]{1,3}//.[0-9]{1,3}//.[0-9]{1,3}"))
{
string[] ip_ = strIP.Split('.');
if (ip_.Length == 4 || ip_.Length == 6)
{
if (System.Int32.Parse(ip_[0]) < 256 && System.Int32.Parse(ip_[1]) < 256 & System.Int32.Parse(ip_[2]) < 256 & System.Int32.Parse(ip_[3]) < 256) return true;
else return false;
}
else return false;
}
else return false;
}
你传入 ip 看返回的是 true或者false就行了
热心网友
时间:2023-10-26 20:29
在你的源程序做了修改,代码如下
public class Iptest {
public static void main(String[] args) {
String ss = "10.0.12.320";
String[] sss = ss.split("\\.");
for (int x = 0; x < sss.length; x++) {
int a=Integer.valueOf(sss[x]);
if (a >= 0 && a <= 255)
System.out.print(" zheng que ");
else
System.out.print("cuo wu");
}
}
}
你输出错误的原因是你没有给你定义的 int[]a=new int[sss.length];
数组赋值 那你取出来的就都是0 所以最后输出的都是 zheng que
追问这样的话 会输出3个zheng que 和1个cuo wu
要只输出1个zheng que 或1个cuo wu的话怎么办呢?
比如10.0.12.320 输出cuo wu
而10.0.12.32 输出 zheng que
追答
不是为了你的满意答案,只是给你们这些初学者更多的办法吧;按照你的源代码,和你后边的问题追问,我做了一下程序修改,现将源码给你
public static void main(String[] args) {
String ss = "10.0.12.320";
String[] sss = ss.split("\\.");
Boolean b=true;
for (int x = 0; x < sss.length; x++) {
int a=Integer.valueOf(sss[x]);
if (!(a >= 0 && a <= 255)){
b=false;
break;
}
}
if (b)
System.out.print(" zheng que ");
else
System.out.print("cuo wu");
}
热心网友
时间:2023-10-26 20:30
在for循环中加上 a[x] = Integer.parseInt(sss[x]);