题解 | #合法IP#
合法IP
http://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9
使用正则判断,
- 先判断为000到255的数字
- 再判断,数字不能有0前缀
import java.util.Scanner;
import java.util.regex.Pattern;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
String a = in.nextLine();
isValid(a);
}
}
private static void isValid(String source) {
final boolean b = Pattern.compile("^((2[0-4]\\d|25[0-5]|[0-1]?\\d?\\d)\\.){3}(2[0-4]\\d|25[0-5]|[0-1]?\\d?\\d)$").matcher(source).find();
final boolean c = Pattern.compile("\\.0\\d|^0\\d").matcher(source).find();
System.out.println(b&&!c?"YES":"NO");
}
}