华为机试-合法IP

题目描述
现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,
表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,
一个IP地址串中没有空格出现(因为要表示成一个32数字)。
现在需要你用程序来判断IP是否合法。

输入描述:
输入一个ip地址
输出描述:
返回判断的结果YES or NO
示例1
输入

10.138.15.1
输出

YES

程序实现

  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3. import java.util.Scanner;  
  4.   
  5. /** 
  6.  * 题目描述 现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位, 
  7.  * 表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址, 
  8.  * 一个IP地址串中没有空格出现(因为要表示成一个32数字)。 现在需要你用程序来判断IP是否合法。 
  9.  *  
  10.  * 输入描述: 输入一个ip地址 输出描述: 返回判断的结果YES or NO 示例1 输入 
  11.  *  
  12.  * 10.138.15.1 输出 
  13.  *  
  14.  * YES 
  15.  *  
  16.  */  
  17.   
  18. "\."  
  19.   
  20.   
  21. import java.util.Scanner;  
  22.   
  23. /** 
  24.  * 题目描述 现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位, 
  25.  * 表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址, 
  26.  * 一个IP地址串中没有空格出现(因为要表示成一个32数字)。 现在需要你用程序来判断IP是否合法。 
  27.  *  
  28.  * 输入描述: 输入一个ip地址 输出描述: 返回判断的结果YES or NO 示例1 输入 
  29.  *  
  30.  * 10.138.15.1 输出 
  31.  *  
  32.  * YES 
  33.  *  
  34.  */  
  35. public class Main {  
  36.     public static void main(String[] args) {  
  37.         @SuppressWarnings("resource")  
  38.         Scanner scanner = new Scanner(System.in);  
  39.         while (scanner.hasNext()) {  
  40.   
  41.             String string = scanner.nextLine();  
  42.   
  43.             String[] stringArr = string.split("\.");  
  44.             boolean flag = check(stringArr);  
  45.             if (flag) {  
  46.                 System.out.println("YES");  
  47.             } else {  
  48.                 System.out.println("NO");  
  49.             }  
  50.         }  
  51.   
  52.     }  
  53.   
  54.     private static boolean check(String[] arr) {  
  55.         int num = 0;  
  56.         for (int i = 0; i < arr.length; i++) {  
  57.             num = Integer.parseInt(arr[i]);  
  58.             if (num < 0 || num > 255) {  
  59.                 return false;  
  60.             }  
  61.         }  
  62.         return true;  
  63.     }  
  64.   
  65. }