黑马程序员技术交流社区
标题:
ip是怎么比大小的呀,一个ip是一个4byte,四个字节加起来?
[打印本页]
作者:
doglovely
时间:
2016-3-7 18:14
标题:
ip是怎么比大小的呀,一个ip是一个4byte,四个字节加起来?
把存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来。
61.54.23以下IP1.245
61.54.231.9
61.54.231.246
61.54.231.48
61.53.231.249TreeSet好像不对?这个怎么写呀?
作者:
BlackFlag
时间:
2016-3-8 00:32
毕向东视频里有,好像是第25天讲正则表达式里的习题。大致思路是把每个ip的4个部分补0,每部分凑够3位;然后将这些ip字符串存入字符串数组,使用Arrays.sort()字符串排序,因为位数相同字符串比较顺序就是ip大小顺序。然后再去掉每个ip多余的0,按顺序输出即可。核心就是正则表达式。
作者:
doglovely
时间:
2016-3-8 14:39
谢谢呀!把正则视屏看看!java都得看那方面的视屏呀?
作者:
萌萌的_O30IH
时间:
2016-3-8 22:34
还没学到呢
作者:
ccyabc
时间:
2016-3-8 22:41
BlackFlag 发表于 2016-3-8 00:32
毕向东视频里有,好像是第25天讲正则表达式里的习题。大致思路是把每个ip的4个部分补0,每部分凑够3位;然 ...
谢谢,我也刚刚看到这,谢谢
作者:
doglovely
时间:
2016-3-9 12:31
谁有正则表达式的视屏?在网上没看到呀!
作者:
doglovely
时间:
2016-4-5 20:23
ip排序的答案?
//定义一个ip排序的方法
public static void ipSort(){
String ip="61.54.231.245 61.54.231.9 61.54.231.246 61.53.231.249";
//ip最多需要补两个0
ip = ip.replaceAll("(\\d+)", "00$1");
//System.out.println(ip);
//ip去掉多余的0,ip变成都是三位数
ip = ip.replaceAll("0*(\\d{3})","$1");
//System.out.println(ip);
//对ip进行切割,变成字符数组
String[] arr = ip.split(" ");
//用TresSet进行知我排序
TreeSet<String> ts = new TreeSet<String>();
for(String s : arr){
ts.add(s);
}
for(String s: ts){
//把0去掉
s = s.replaceAll("0*(\\d+)", "$1");
System.out.println(s);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2