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地址寫錯,現在需要你用程序來判斷。
但是粗心的我,常常將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個字符這句話應該能想到的,要注意~