• HDOJ 2206 IP的计算(正则表达式的应用)


    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

    首先看下IPv4的格式:

    用JAVA的正则表达式很容易就写出来了。
    不过需要注意的一点是”.“号的转义。

    部分正则表达式符号的解释:
    X? ( X一次或一次也没有)
    X* ( X,零次或多次 )
    X+ ( X,一次或多次 )
    X{n} ( X,恰好 n 次 )
    X{n,}( X,至少 n 次 )
    X{n,m} (X,至少 n 次,但是不超过 m 次 )
    X|Y (X 或 Y )
    [abc] ( a、b 或 c(简单类) )
    d (数字:[0-9] )

    import java.util.Scanner;
    
    public class Main{
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            while(sc.hasNext()){
                String str = sc.nextLine();
    
                if(str.matches("(((25[0-5])|(2[0-4]\d)|([01]?\d\d?))\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)")){
                    System.out.println("YES");
                }else{
                    System.out.println("NO");
                }
            }
    
        }
    
    }
    
    
  • 相关阅读:
    概率论基础学习笔记
    树点涂色
    2016北京集训测试赛(八)Problem C: 直径
    BZOJ 4361 ISN
    2017省选集训测试赛(二十五)Problem B recollection
    2016北京集训测试赛(六)Problem B: 矩阵
    记录Vue和Jquery混合开发中关于点击事件的一个bug
    记录JQ-WEUI中滚动加载的一个BUG
    Vue Elementui 如何让输入框每次自动聚焦
    什么是CDN加速?(转载)
  • 原文地址:https://www.cnblogs.com/webmen/p/5739358.html
Copyright © 2020-2023  润新知