给定一个ip,怎么判断它是否在一个数组中?请用java代码,
在线等待或ai21tian@126.com或314078331给定一个ip,怎么判断它是否在一个数组中举例吧:我现在用这个ip登录(10.20.45.125)ip数组是:...
在线等待或 ai21tian@126.com 或 314078331
给定一个ip,怎么判断它是否在一个数组中
举例吧:我现在用这个ip登录(10.20.45.125)
ip数组是:{10.20.1.34,10.20.*.125,10.25.40.127}其中*是通配符,我要的答案是,怎么判断登录ip在ip数组中呢? 展开
给定一个ip,怎么判断它是否在一个数组中
举例吧:我现在用这个ip登录(10.20.45.125)
ip数组是:{10.20.1.34,10.20.*.125,10.25.40.127}其中*是通配符,我要的答案是,怎么判断登录ip在ip数组中呢? 展开
3个回答
展开全部
我说一下方法吧,用伪代码讲了。
一个IP类
class IP{
private String ipStr;
private Integer [] ipvalue=new Integer[4]();
public IP(){
ipStr="localhost";//等等····
ipvalue=new Integer[]{127,0,0,1};//
}
//- - - - -其他的方法,setter ,getter
public Boolean ipIn(IP ip){
if(ipStr!=null&&ipStr.eq(ip.getIpStr()))return true;/////方法自己补齐。具体的eq方法名不太记得了
Integer [] ipv=ip.etIpvalue();
Boolean res=true;
for(int i=0;i<4;i++){
int t=ipv[i];
if(t!=-1&&t!=ipvalue[i]){//-1 表示通配符
res=false;
break;//ip地址已经不等
}
}
return res;
}
}
/////该方法用于达成你的目的
public Boolean ipInArr(IP ip,IP[] ips){
for(IP i:ips){
if(ip.ipIn(i))return true;//找到了,返回
}
return false;//没找到
}
以上代码为伪代码,请不要照抄,其中一些函数名可能写错了,请注意修改。
一个IP类
class IP{
private String ipStr;
private Integer [] ipvalue=new Integer[4]();
public IP(){
ipStr="localhost";//等等····
ipvalue=new Integer[]{127,0,0,1};//
}
//- - - - -其他的方法,setter ,getter
public Boolean ipIn(IP ip){
if(ipStr!=null&&ipStr.eq(ip.getIpStr()))return true;/////方法自己补齐。具体的eq方法名不太记得了
Integer [] ipv=ip.etIpvalue();
Boolean res=true;
for(int i=0;i<4;i++){
int t=ipv[i];
if(t!=-1&&t!=ipvalue[i]){//-1 表示通配符
res=false;
break;//ip地址已经不等
}
}
return res;
}
}
/////该方法用于达成你的目的
public Boolean ipInArr(IP ip,IP[] ips){
for(IP i:ips){
if(ip.ipIn(i))return true;//找到了,返回
}
return false;//没找到
}
以上代码为伪代码,请不要照抄,其中一些函数名可能写错了,请注意修改。
追问
我先按你的方法测试下,行的话我就给你了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
简单点直接用
"10.20.45.125".matches("10.20.\\d{3}.125");
负责的直接用正则表达式搞定了赛。
把"*"换成"\\d{3}"。
至于正则表达式的定义,就不复制了,反正很多。
"10.20.45.125".matches("10.20.\\d{3}.125");
负责的直接用正则表达式搞定了赛。
把"*"换成"\\d{3}"。
至于正则表达式的定义,就不复制了,反正很多。
追问
我能知道*的具体位置就好了,*可以在第一点的前面,也可在任意一个点的前面
追答
任意位置皆可。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Checkip
{
//定义一个字符串数组并初始化
String str="10.20.45.125";
String []arry={10.20.1.34,10.20.1.125,10.25.40.127};
Boolean bl=false;
for(int i=0;i<arry.length;i++)
{
if(str.equals(arry[i])=true)
{
System.out.prinrln("该IP存在于数组中");
}
}
}
{
//定义一个字符串数组并初始化
String str="10.20.45.125";
String []arry={10.20.1.34,10.20.1.125,10.25.40.127};
Boolean bl=false;
for(int i=0;i<arry.length;i++)
{
if(str.equals(arry[i])=true)
{
System.out.prinrln("该IP存在于数组中");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询