这种题关键就是要细心,把所有可能出现的错误,通过 if-else 语句排除掉
- 初始 字符串分割之后,一定要分成 4 部分,否则直接返回
- 分割后的字符串不能为 空串,否则直接返回
- 分割后的字符串不能包含 除数字以外 的任何字符,否则直接返回
- 在 IPv4 中,对于每一部分的数字,都不能 大于255 或者为 负数
- 别忘了,对于每一部分,不能有 前导0,即不能有 255.002.255.12 这种情况
import java.util.*;
public class Main {
public static void main (String[] args) {
Scanner scan = new Scanner(System.in);
String[] strs = scan.nextLine().split("\\.");
if (strs.length != 4) {
System.out.println("NO");
return;
}
for (String str : strs) {
if ("".equals(str)) {
System.out.println("NO");
return;
}
int tmp = 0;
try {
tmp = Integer.valueOf(str);
} catch (Exception e) {
System.out.println("NO");
return;
}
if (tmp < 0 || tmp > 255) {
System.out.println("NO");
return;
}
if (String.valueOf(tmp).length() != str.length()) {
System.out.println("NO");
return;
}
}
System.out.println("YES");
}
}