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 @   海漠  阅读(116)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示