Android 判断ip地址合法实现代码
Android判断ip地址合法实现代码
昨天,我在网上找了一下判断文本框内的字符串是否是合法的ip地址,自己想到了正则表达式,可是自己对这个却不熟,所以在网上查找了一些资料,最后终于是做出来了。
具体的代码很简单,
publicbooleanisIP(Stringaddr) { if(addr.length()<7||addr.length()>15||"".equals(addr)) { returnfalse; } /** *判断IP格式和范围 */ Stringrexp="([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}"; Patternpat=Pattern.compile(rexp); Matchermat=pat.matcher(addr); booleanipAddress=mat.find(); //============对之前的ip判断的bug在进行判断 if(ipAddress==true){ Stringips[]=addr.split("\\."); if(ips.length==4){ try{ for(Stringip:ips){ if(Integer.parseInt(ip)<0||Integer.parseInt(ip)>255){ returnfalse; } } }catch(Exceptione){ returnfalse; } returntrue; }else{ returnfalse; } } returnipAddress; } }
这个代码先用正则表达式判断是否合法,其实就是判断是否右3个点分开字符串,不过对字符串没有判断是否为数字,所以在后面我又找了另一个判断ip的代码,如果前面判断的是合法,则在把字符串用点分开,然后强转成数字判断是否在0到255之间,如果不满足或者强转报错,就返回字符串不是ip的false变量。
这样就完成了判断ip的合法性。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!