hdu2206 IP的計算(正則表達式)

IP的計算

Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 11592 Accepted Submission(s): 2509


Problem Description
在網絡課程上,我學到了很多有關IP的知識。IP全稱叫網際協議,有時我們又用IP來指代我們的IP網絡地址,現在IPV4下用一個32位無符號整數來表示,一般用點分方式來顯示,點將IP地址分成4個部分,每個部分爲8位,表示成一個無符號整數(因此不需要用正號出現),如192.168.100.16,是我們非常熟悉的IP地址,一個IP地址串中沒有空格出現(因爲要表示成一個32數字)。
但是粗心的我,常常將IP地址寫錯,現在需要你用程序來判斷。

Input
輸入有多個case,每個case有一行,不超過100個字符。

Output
對於每個case,判斷輸入的IP是否正確,如果正確輸入YES,否則NO。

Sample Input
192.168.100.16

Sample Output
YES

import java.util.Scanner;

public class reg_hdu2206 {


	public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          while(sc.hasNext()){
        	  String str = sc.nextLine();
        	  String reg = "(((25[0-5])|(2[0-4]\\d)|([0-1]?\\d\\d?))[.]){3}((25[0-5])|(2[0-4]\\d)|([01]?\\d\\d?))";
              boolean boo = str.matches(reg);
              if(boo){
            	  System.out.println("YES");
              }else{
            	  System.out.println("NO");
              }
          }
	}

}


說實話,這個題目用正則表達式做的話略複雜,不過多想一想也是有好處的,就是輸入有空格比較坑,沒想到的話找錯會頭疼。

其實仔細讀題看到可以輸入100個字符這句話應該能想到的,要注意~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章