用'.'截取分割字符串,应该把ip分成四个子串。然后分别对这四个子串进行检验:检验的项目有1、非空检验;2、非零数是否含有前导零;3、是否含'+'号;4、是否在0-255之间。
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
boolean isValid= true;
while (in.hasNext()) {
String s = in.nextLine();
String ips[] = s.split("\\.");
if(ips.length!=4){
isValid = false;
break;
}
for(int i =0;i<ips.length;++i){
if(check(ips[i])){
isValid = false;
break;
}
}
}
if(isValid)
System.out.println("YES");
else System.out.println("NO");
}
public static boolean check(String s){
if(s.equals(""))return true;
int temp =Integer.parseInt(s);
if(temp!=0&&s.charAt(0)=='0')return true;
else if(s.charAt(0)=='+')return true;
else if(temp<0||temp>=255)return true;
return false;
}
}