给定一个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数组中呢?
展开
 我来答
censhi007
2011-03-14 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:114万
展开全部
我说一下方法吧,用伪代码讲了。

一个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;//没找到
}

以上代码为伪代码,请不要照抄,其中一些函数名可能写错了,请注意修改。
追问
我先按你的方法测试下,行的话我就给你了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thodylkbc814
2011-03-14 · TA获得超过1013个赞
知道小有建树答主
回答量:943
采纳率:37%
帮助的人:330万
展开全部
简单点直接用
"10.20.45.125".matches("10.20.\\d{3}.125");

负责的直接用正则表达式搞定了赛。
把"*"换成"\\d{3}"。
至于正则表达式的定义,就不复制了,反正很多。
追问
我能知道*的具体位置就好了,*可以在第一点的前面,也可在任意一个点的前面
追答
任意位置皆可。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lovegy521
2011-03-14 · TA获得超过152个赞
知道答主
回答量:152
采纳率:0%
帮助的人:109万
展开全部
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存在于数组中");
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式