将String类型的IP地址转化成int

一、题目描述

       1、将string类型的IP地址转化成int。

       2、将int类型数转化成string类型的IP地址。

二、代码实现

       见我的github:TransIPtoInt

三、解题思路:首先是通过正则表达式对输入的string类型的IP地址进行判断,分割字符串进行累加(见注意事项),输出。

       1)正则表达式对输入的string类型的IP地址进行判断。

       2)分割字符串进行累加。

       2.1)首先通过String.split("\\."),将字符串按照"."分开。

       2.2)对于分开后的每个小字符串,判断是否小于255(这一点,正则表达式无法做到)。

       2.3)然后按位右移相应的位数,并相加。

       

       3)将int类型数转化成string类型的IP地址。

       

三、注意事项

       1)String regular = "^[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}$";匹配的是数字开头,数字结尾,数字位数在1-3之间,且数字间含有"."分开的字符串。

       2)如果用“.”作为分隔的话,必须是如下写法,String.split("\\."),这样才能正确的分隔开,不能用String.split(".");

       3)考虑到int类型的最大长度为32位,在计算的时候会出现问题,因此乘积选用long类型来存储 。

四、测试用例

//正案例

private String demoIPString01 = "0.0.0.0";

private long demoIPint01 = 0;

private String demoIPString02 = "255.255.255.255";

private long demoIPint02 = 4294967295l;

private String demoIPString03 = "255.0.0.255";

private long demoIPint03 = 4294967295l - 16777215l + 255l;

private String demoIPString04 = "0.0.0.1";

private long demoIPint04 = 1;

private String demoIPString05 = "255.255.255.254";

private long demoIPint05 = 4294967294l;

private String demoIPString06 = "0.0.0.255";

private long demoIPint06 = 255;

private String demoIPString07 = "0.0.1.0";

private long demoIPint07 = 256;

private String demoIPString08 = "25.36.15.15";

private long demoIPint08 = 421793551;

//反案例

private String demoIPString101 = "256.0.0.0";

private long demoIPint101 = -1;

private String demoIPString102 = "1.2.255.256";

private long demoIPint102 = -1;

private String demoIPString103 = "256.0.k.0";

private long demoIPint103 = -1;

 

五、效果展示

       

       

       

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值