算法题:判断字符串是否是合法的ipv4地址

问题描述
判断字符串是否是合法的ipv4地址

ipv4地址特点
比如 123.1.33.2
有四位,每一位之间直接用.分割,每一位的范围是0-255,即在0.0.0.0到255.255.255.255之间

(方法1)
将当前字符串分割为字符数组(注意分隔符.需要转义写成\\.),然后判断每一位的范围是否在0-255之间,如果在0-255之间,判断是否当前字符是否以0结尾同时不是第一位(比如01.11.11.11不是合法的ipv4地址)

boolean checkIp(String ip) throws Exception{

		String arrs[]=ip.split("\\.");//.转义
		if (arrs.length!=4) {

			return false;
		}
		for(int i=0;i<arrs.length;i++) {
			Integer num=null;
			try {
				num=Integer.parseInt(arrs[i]);
				if (num<0||num>255) {
					return false;
				}
				if (!num.equals("0")&&arrs[i].startsWith("0")) {//避免01出现
					return false;
				}
				
			} catch (NumberFormatException e) {
				// TODO: handle exception
				return false;
			}
		}
		return true;
		
	}

(方法2)使用正则表达式

boolean checkIp2(String ip) throws Exception{

		String arrs[]=ip.split("\\.");//.转义
		if (arrs.length!=4) {

			return false;
		}
		String reg="\\d||[1,9]\\d{1,2}";
		for(String arr:arrs) {
			try {
				if (!arr.matches(reg)||Integer.parseInt(arr)>255) {
					return false;	
				}
			} catch (NumberFormatException e) {
				// TODO: handle exception
			}
		}
		return true;
		
	}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值