验证IP地址

题目

在这里插入图片描述
在这里插入图片描述

分析

这道题就是判定给定字符串是否符合ipv4或者ipv6的格式
ipv4的格式:
1、按照点分十进制法每八位转换成一个十进制数,用“.”分割
2、每个十进制数的范围0-255
3、每个十进制数不能以0开头,即如果是二进制(1001),只能写成9,不能写成09
ipv6的格式:
1、每16位进行分割,分隔符“:”,因此共有八部分
2、每部分按照16进制表示,即每4位表示成一个16进制的数
3、每部分可以长度在1-4,可以以0开头

代码:利用正则表达式

import java.util.*;
import java.util.regex.Pattern;
public class Solution {
    /**
     * 验证IP地址
     * @param IP string字符串 一个IP地址字符串
     * @return string字符串
     */
    public String solve (String IP) {
        // write code here
        //ipv4的匹配规则
        String ipv4 = "((([1-9]\\d)|(\\d)|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))\\.){3}((\\d)|([1-9]\\d)|(1\\d{2})|(2[0-4]\\d)|(25[0-5]))";
        //ipv6的匹配规则
        String ipv6 = "((([0-9a-fA-F]){1,4})\\:){7}([0-9a-fA-F]){1,4}";
        boolean isIpv4 = Pattern.matches(ipv4,IP);
        boolean isIpv6 = Pattern.matches(ipv6,IP);
        if(isIpv4 == true) {
            return "IPv4";
        } else if(isIpv6 == true) {
            return "IPv6";
        } else {
            return "Neither";
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值