小弟最近写一个有关检查输入的IP是否合法的函数:
1。IP地址中有且仅有三个点。
2。IP地址中的四个字段在[0,255]之间,而且,第一个字段不能为0。
例如IP:192。168。0。56 为了得到IP的字段,我用了String.split(".") 但是,split()函数
不支持这个,原因是split()函数带的参数必须满足正则表达式。如果将IP地址中的点换为逗号,分号冒号,是可以的。
请问我应该怎么做才能得到IP的四个字段?
1。IP地址中有且仅有三个点。
2。IP地址中的四个字段在[0,255]之间,而且,第一个字段不能为0。
例如IP:192。168。0。56 为了得到IP的字段,我用了String.split(".") 但是,split()函数
不支持这个,原因是split()函数带的参数必须满足正则表达式。如果将IP地址中的点换为逗号,分号冒号,是可以的。
请问我应该怎么做才能得到IP的四个字段?
s.split("\\.");
int n1=0,n2=0,n3=0,n4=0;
String s1=null,s2=null,s3=null,s4=null;
int t1=0,t2=0,t3=0,t4=0;n1=s.indexOf('.');
n2=s.indexOf('.',n1+1);
n3=s.indexOf('.',n2+1);
n4=s.indexOf('.',n3+1);
if(n1>0&&n4==0)
{
try
{
s1=s.substring(0,n1);
s2=s.snbstring(n1+1,n2);
s3=s.snbstring(n2+1,n3);
s4=s.snbstring(n3+1,s.length());
}
catch(Exception e){}
}
t1=Intrger.parseInt(s1);
t2=Intrger.parseInt(s2);
t3=Intrger.parseInt(s3);
t4=Intrger.parseInt(s4);
if(t1>0&&t1<=255&&t2>=0&&t2<=255&&t3>=0&&t3<=255&&t4>=0&&t4<=255)
{
System.out.paintln("输入IP正确");
}
else
System.out.println("输入IP错误");小第是个初学者!!所想的程序思想不是很有新颖,所以写出来的程序几是这个样了.也不知道行不行,呵呵所以呢请高手哥哥给我来点指点吧!!
{
boolean isIp=true;
if(ip.lastIndexOf('.')==(ip.trim().length()-1))
return false;
String[] ips=ip.trim().split("[\\.]");
if(ips.length!=4)
return false;
if(Integer.parseInt(ips[0])>255||Integer.parseInt(ips[0])<=0)
return false;
for(int i=1;i<ips.length;i++)
{
if(Integer.parseInt(ips[i])>255||Integer.parseInt(ips[i])<0)
return false;
}
return isIp;
}
return false;
///////不能少,因为"22.22.222.22...."这种情况