javaHJ90 合法IP

描述

IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。

现在需要你用程序来判断IP是否合法。
 
数据范围:数据组数:1\le t\le 18\1t18 
进阶:时间复杂度:O(n)\O(n) ,空间复杂度:O(n)\O(n) 

 

输入描述:

输入一个ip地址,保证不包含空格

输出描述:

返回判断的结果YES or NO

示例1

输入:
255.255.255.1000
输出:
NO

 

 

 1 import java.util.*;
 2 
 3 public class Main {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         while(sc.hasNext()) {
 7             String[] split = sc.next().split("\\.");
 8             boolean flags = true;
 9             for(int i = 0; i < split.length; i++) {
10                 if(split.length != 4  || split[i].equals("")){  //如果长度不等于4,或者中间有空的字段如:2..3.5
11                     flags = false;
12                     break;
13                 }
14                 if(split[i].length() <0 || split[i].length() >3) {  //拆分后的字符串长度小于0或大于3说明不合法
15                     flags =false;
16                     break;
17                 } 
18                 if(split[i].length() == 1) {  // 如果长度为1
19                     if(split[i].equals("0")) {
20                         flags = true;
21                     } else if(split[i].charAt(0) < '0' || split[i].charAt(0) > '9') {  //长度为1时,不是1-9不合法
22                         flags = false;
23                         break;
24                     }
25                 } else {   //如果长度不为1
26                     // 首字符为0或不是数字
27                     char c = split[i].charAt(0);
28                     if( c =='0' || !(c>='1' && c<='9')) {
29                         flags = false;
30                         break;
31                     } else{
32                         int temp = Integer.parseInt(split[i]);
33                         if(temp<0 || temp >255) {
34                             flags = false;
35                             break;
36                             }
37                     }
38                 }
39             }
40             if(flags)
41                 System.out.println("YES");
42             else
43                 System.out.println("NO");
44         }
45     }
46 }

 

posted @ 2022-03-14 16:50  海漠  阅读(103)  评论(0编辑  收藏  举报