如何判断一个字符串是否为合法的IP地址。

如何判断一个字符串是否为合法的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("不合法!");
				}
				
				
				
				
				
				
			}
		}

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值