判断一个字符串是否是Ip地址

面试的一道算法题

 public class Test_ip {
 2     //程序入口
 3     public static void main(String[] args) {    
 4         Solution s = new Solution();    // 业务逻辑放在Solution类里面
 5         //String test_str = "12.34.56.67";
 6         String test_str = "256.34.56.67";    // 待解决的字符串
 7         boolean res = s.test_ip(test_str);    //调用判断方法
 8         System.out.println(res);    //输出结果
 9     }
10 }
11 
12 class Solution{
13     /**
14      * 判断一个字符串是否是一个合法的ip地址:
15      *    1 首先检查字符串的长度 最短应该是0.0.0.0 7位 最长 000.000.000.000 15位
16      *    2 尝试按.符号进行拆分     拆分结果应该是4段
17      *    3 查看拆分到的每一个子字符串,应该都是纯数字
18      *    4 对拆分结果转成整数 判断 应该是0到255之间的整数
19      *    5 经过各种磨砺之后 挺过来了!!!返回true
20      */
21     public boolean test_ip(String str){
22         // 1 首先检查字符串的长度 最短应该是0.0.0.0 7位 最长 000.000.000.000 15位
23         if(str.length()<7 || str.length() >15) return false;    // 如果长度不符合条件 返回false
24         
25         // 2 尝试按.符号进行拆分     拆分结果应该是4段
26         String[] arr = str.split("\\.");
27         if( arr.length != 4 )    return false;    //如果拆分结果不是4个字串 返回false
28         
29         // 3 查看拆分到的每一个子字符串,应该都是纯数字
30         for(int i = 0 ; i <4 ; i++ ){
31             for(int j = 0; j<arr[i].length();j++){
32                 char temp = arr[i].charAt(j);
33                 if(!( temp>'0' && temp< '9' ) ) return false;    //如果某个字符不是数字就返回false
34             }
35         }
36         
37         // 4 对拆分结果转成整数 判断 应该是0到255之间的整数
38         for(int i = 0 ; i<4;i++){
39             int temp = Integer.parseInt( arr[i] );
40             if( temp<0 || temp >255)    return false;    //如果某个数字不是0到255之间的数 就返回false
41         }
42         
43         // 5 经过各种磨砺之后 挺过来了!!!返回true
44         return true;
45     }
46 }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,034评论 25 709
  • 二十三岁的我在杭州这座不大不小的城市漂泊了五个年头。初中未毕业的我在这里迷茫着,颠沛流离着。回首这大半个岁月我所...
    梁夫湘阅读 5,355评论 4 12
  • 不要以为你残疾了, 就觉得自己失去色彩了, 就可以选择逃避了, 那是胆小! 其实, 你比正常人聪明, 比正常人顽强...
    墨羽倾阅读 1,144评论 0 0
  • 早上起床后,女儿说肚子疼,我用手摸一下她的额头,有点热,量了体温,低烧。 时间一分一秒地过去,眼看孩子的状态,这个...
    情绪管理咨询师振嘉阅读 1,189评论 0 0

友情链接更多精彩内容