描述 |
|
---|---|
知识点 | 字符串,循环,链表,队列,栈,查找,搜索,排序,树,图,数组,函数,指针,枚举,位运算,结构体,联合体,文件操作,递归 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入一个ip地址 |
输出 | 返回判断的结果YES or NO
|
样例输入 | 10.138.15.1 |
样例输出 | YES |
就很快很快就
//首位是否为0;是否包含空格;长度是否为4;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String input = scanner.nextLine();
System.out.println(ipCheck(input));
}
scanner.close();
}
private static String ipCheck(String s) {
final String YES = "YES";
final String NO = "NO";
String[] ss = s.split("\\.");
if (ss.length != 4) {
return NO;
}
for (int i = 0; i < ss.length; i++) {
try {
int num = Integer.parseInt(ss[i]);//可以判断出是否包含空格,但是缺少判断首位是否为0;
if (num < 0 || num > 255) {
return NO;
}
} catch (Exception e) {
return NO;
}
}
return YES;
}
}
import java.util.*;
//空格和长度,首位是否为0
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
String s=sc.nextLine();
if(ip(s)){
System.out.println("YES");}
else{System.out.println("NO");}
sc.close();
}
}
private static boolean ip(String s){
String[] ss=s.split("\\.");
boolean istrue=true;
//判断长度是否符合
if(ss.length!=4){istrue=false;}
for(int i=0;i<ss.length;i++){
//判断是否包含空格
try{
if(Integer.parseInt(ss[i])>=0&&Integer.parseInt(ss[i])<=9&&ss[i].length()!=1){istrue=false;}
else if(Integer.parseInt(ss[i])>=10&&Integer.parseInt(ss[i])<=99&&ss[i].length()!=2){istrue=false;}
else if(Integer.parseInt(ss[i])>=100&&Integer.parseInt(ss[i])<=255&&ss[i].length()!=3){istrue=false;}
}catch(Exception e){return false;}
//判断首位是否为0;
if(i==0){if(Integer.parseInt(ss[0])<=0||Integer.parseInt(ss[0])>=255){
istrue =false;break;
}}
else{
if(Integer.parseInt(ss[i])<0||Integer.parseInt(ss[i])>=255){//每位大小
istrue =false;break;
}
}}
return istrue;
}
}