HDOJ 2206 IP的计算(正则表达式的应用)
2016-03-24 13:29
232 查看
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] )
在网络课程上,我学到了很多有关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"); } } } }
相关文章推荐
- java反射机制方法的获取与调用
- 设置文字段落属性
- CSS 元素垂直居中的 6种方法(转)
- 第四个MapReduce程序----两表join
- 天声人語 20160324 春を切り裂くテロ
- 事务一致性控制
- 大华摄像头视频接入(一)
- 理解长短期记忆模型LSTM
- GOOGLE VR SDK开发VR游戏
- FFmpeg里面的时间单位
- java的一些发展前景!
- 【数据结构】数组与实现分析
- 【转】探索C#之布隆过滤器(Bloom filter)
- 解决position:fix中的固底定位在跳转后返回的抖动
- JHipster简介
- Windows批量结束进程
- VC访问数据库学习总结
- Android学习笔记(33):Android对话框
- Intellij IDEA 使用小技巧
- java的一些学习方案!