public class Legal {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.next();
if (isLegalIp(str)){
System.out.println("ip地址合法");
}else
System.out.println("ip地址不合法");
}
public static boolean isLegalIp(String str){
//字符串为空
if (str == null){
return false;
}
//ip最短7位:X.X.X.X;最长15位:XXX.XXX.XXX.XXX
if (str.length()<7||str.length()>15){
return false;
}
//对首末字符进行判断,若为.则非法
if (str.charAt(0)=='.'||str.charAt(str.length()-1)=='.'){
return false;
}
//按.将字符串分割,若分割出来的个数不为4,则为非法ip
String[] arr = str.split("\\.");
if (arr.length != 4){
return false;
}
//对分割出来的每个字符串进行单独判断
for (int i=0;i<arr.length;i++){
//如果每个字符串不是一位字符且以0开头,则为非法ip
if (arr[i].length()>1 && arr[i].charAt(0)=='0'){
return false;
}
//对每个字符串的每个字符进行逐一判断,若不是0—9,则非法
for (int j = 0;j<arr[i].length();j++){
if (arr[i].charAt(j)<'0' || arr[i].charAt(j)>'9'){
return false;
}
}
}
//对拆分的每一个字符串进行转换成数字,判断是否在0—255
for (int i = 0;i<arr.length;i++){
int temp = Integer.parseInt(arr[i]);
if (i==0){
if (temp<1 || temp>255){
return false;
}
}else {
if (temp<0 || temp>25){
return false;
}
}
}
return true;
}
}
判断一个字符串是否为合法ip地址
最新推荐文章于 2022-01-30 22:09:08 发布