zoukankan      html  css  js  c++  java
  • 判断一个字符串是不是一个合法的IP地址

    最近在笔试的时候遇到碰一道算法题,

    要求判断一个字符串是不是合法的ip地址。

    将我的思路发出来分享一下,不一定正确,也不一定是最优的方法。希望能分享一些交流

    要求用java或者c来实现,我的java代码:

     1 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 }
  • 相关阅读:
    Graphic
    GUI编程实战
    Swing 混合布局
    运算符与数据库函数
    mysq基础操作
    mysql常见问题处理
    static 与final abstract关键字
    JAVA面试
    Swing
    AWT的应用
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/7501866.html
Copyright © 2011-2022 走看看