android 判断ip地址合法
昨天,我在網上找了一下判斷文本框內的字符串是否是合法的ip地址,自己想到了正則表達式,可是自己對這個卻不熟,所以在網上查找了一些資料,最后終于是做出來了。
具體的代碼很簡單,
?public boolean isIP(String addr)
??????? {
??????????? if(addr.length() < 7 || addr.length() > 15 || "".equals(addr))
??????????? {
??????????????? return false;
??????????? }
??????????? /**
???????????? * 判斷IP格式和范圍
???????????? */
??????????? String rexp = "([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}";
??????????? Pattern pat = Pattern.compile(rexp);
??????????? Matcher mat = pat.matcher(addr);
??????????? boolean ipAddress = mat.find();
??????????? //============對之前的ip判斷的bug在進行判斷
??????????? if (ipAddress==true){
??????????????? String ips[] = addr.split("\\.");
??????????????? if(ips.length==4){
??????????????????????? try{
??????????????????????????? for(String ip : ips){
??????????????????????????????? if(Integer.parseInt(ip)<0||Integer.parseInt(ip)>255){
??????????????????????????????????? return false;
??????????????????????????????? }
??????????????????????????? }
??????????????????????? }catch (Exception e){
??????????????????????????? return false;
??????????????????????? }
??????????????????? return true;
??????????????? }else{
??????????????????? return false;
??????????????? }
??????????? }
??????????? return ipAddress;
??????? }
}
這個代碼先用正則表達式判斷是否合法,其實就是判斷是否右3個點分開字符串,不過對字符串沒有判斷是否為數字,所以在后面我又找了另一個判斷ip的代碼,如果前面判斷的是合法,則在把字符串用點分開,然后強轉成數字判斷是否在0到255之間,如果不滿足或者強轉報錯,就返回字符串不是ip的false變量。
這樣就完成了判斷ip的合法性。
就這么簡單。
總結
以上是生活随笔為你收集整理的android 判断ip地址合法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android dip转px
- 下一篇: android listview左滑删除