文字列が合法的なIPアドレスかどうかを判断します。

6788 ワード

最近筆記試験の時にアルゴリズムの問題にぶつかりました。
文字列が合法的な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){
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 }
 
転載先:https://www.cnblogs.com/Lin-Yi/p/7501866.html