如何判断一个字符串是否为合法的IP地址。
import java.util.Scanner;
public class MyTest {
public static void main(String[] args) {
/*
* 如何判断一个字符串是否为合法的IP地址。
*/
Scanner sc=new Scanner(System.in);
String test=sc.nextLine();
// ip地址最短7位最长15位
if (test.length() < 7 || test.length() > 15) {
System.out.println("不合法,长度不对");
} else {
String[] TheFigures = test.split("\\.");
if (TheFigures.length!= 4) {
System.out.println("不合法,不是4个串-------"+TheFigures.length);
} else {
//对每个字符串进行判断是否是规定的数字
boolean flag=true;//定义一个标志位
long sum=0;
for(int i=0;i<TheFigures.length;i++) {
char [] cr=TheFigures[i].toCharArray();
//遍历每个串里的字符
for (char chr:cr) {
char ling='0';
int ch=chr-ling;
if(ch<0 | ch>9) {
flag=false;
System.out.println("不合法,有非数字---ASCII值为"+ch+"字符是"+chr);
break;
}
}
sum=sum+Integer.parseInt(TheFigures[i]);
if(flag) {
int figInt=Integer.parseInt(TheFigures[i]);
if(figInt<0 || figInt>255) {
flag=false;
break;
}
}
}
if(flag && sum!=0 ) {
System.out.println("合法啦!");
}else {
System.out.println("不合法!");
}
}
}
}
}