ECNU 2987 判断 IP
ECNU 2987 判断 IP
链接
https://acm.ecnu.edu.cn/problem/2987
题目
单点时限: 2.0 sec
内存限制: 256 MB
输入一个 IP 地址串,判断是否合法。
输入格式
输入的第一行包括一个整数 n (),代表下面会出现的 IP 地址的个数。
接下来的 n 行每行有一个 IP 地址,IP 地址的形式为 a.b.c.d,其中 都是整数。
输出格式
可能有多组测试数据,对于每组数据,输出一行问题的编号( 开始编号,格式:case #0: 等)然后如果 IP 地址合法则输出 Yes,如果 IP 地址非法则输出 No,并输出使该 IP 非法的第一个 IP 分量的位置及该 IP 分量,中间以空格分开。
样例
input
3
255.255.255.255
512.12.2.3
126.12.512.0
output
case #0:
Yes
case #1:
No 0 512
case #2:
No 2 512
提示
合法的IP地址为:
都是的整数。
ip地址有4位,第一位分量的位置为0,第二位为1,第三位为2,第四位为3。
思路
就,字符串处理就行,以点分割,然后转字符串为数字,如果在0-255就符合条件,不在就输出错误,并跳出即可。
代码
public static void fun() {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
int flag = 0;
String str = sc.next();
String[] sp = str.split("\\.");
System.out.println("case #" + i + ":");
for (int j = 0; j < 4; j++) {
int temp = Integer.valueOf(sp[j]);
if (temp < 0 || temp > 255) {
flag = 1;
System.out.println("No " + j + " " + sp[j]);
break;
}
}
if (flag == 0) {
System.out.println("Yes");
}
}
}