java 实现ip地址分类并排序

本文介绍了如何使用Java对IP地址进行分类和排序。通过补零和字符串排序方法解决IP比较问题,利用TreeSet进行排序,并采用暴力解法根据IP的第一个网段进行分类,最后去除StringBuffer中多余的逗号完成输出。
摘要由CSDN通过智能技术生成

java 实现ip地址分类并排序

小女子为了谋生,前几天参加华为实习生笔试,结果被虐惨了(小皮鞭都没这么痛!)。。。一共3道编程题,小女子就会一题(掩面而泣)。小女子不甘心啊,茶不思饭不想地就坐在电脑前想想想!!!(会不会精尽人亡 (°□°;) )终于啊,老天开眼了!!!灵感如潮水一阵一阵冲击着小女子,想明白其中一题!!!小女子满足了,欣慰。


今天要讨论的就是其中占一半分的大题——对ip地址进行分类排序。题目具体描述小女子已记不清了,但是核心就是给5个ip地址,对这5个ip地址进行分类(A,B,C,D,E),每个分类里面的ip地址按数字大小升序排列。
关于ip地址分类,网上查查就好了,有具体ip网段范围。
这里简单解释一下:

  • A:0-127
  • B : 128-191
  • C : 192-223
  • D : 224-239
  • E : 240-255

最后输出形式

A:[50.1.1.1,117.1.1.2]
C:[192.168.1.1,202.101.1.1]
E:[245.210.1.2]

所以这题关键有两点:

  1. 排序
  2. 分类

排序

排序的思路是按字符串排序。肯定有人疑惑了50.1.1.1,117.1.1.2按字符串排序的话那前面一个比后面大,而实际上是后一个大。怎么办呢╮(╯▽╰)╭

这里参考很多对ip排序的,方法是对ip地址在前补零,再截取后3位,如:

原始ip 补零ip 截取ip
50.1.1.1 050.001.001.001 050.001.001.001
117.1.1.2 00117.001.001.002 117.001.001.002

这样不就可以完美的对处理后的ip地址进行字符串排序了嘛(•̀ᴗ•́)و ̑̑
java代码如下:

//补零
ip_str=ip_str.replaceAll("(\\d+)", "00$1");
//截取    
ip_str=ip_str.replaceAll("0*(\\d{3})", "$1");

排序利用java集合treeset,省去好大一麻烦,完美!

分类

分类嘛,小女子就用了暴力解法(越暴力越开心)。截取ip地址第一个网段,判断数值大小&

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值