A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mo﹎雲℡ 中级黑马   /  2013-9-7 21:46  /  1579 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问题:把以下IP存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来。
* 61.54.231.245
* 61.54.231.9
* 61.54.231.246
* 61.54.231.48
* 61.53.231.249
前面的代码我就不发了,就分享一下IP的排序方法
  1. class IP implements Comparable<IP>{
  2.         private String ip;
  3.         public IP(String ip){
  4.                 this.ip = ip;
  5.         }
  6.         public String getIp() {
  7.                 return ip;
  8.         }
  9.         public void setIp(String ip) {
  10.                 this.ip = ip;
  11.         }
  12.         //增加排序方法
  13.         @Override
  14.         public int compareTo(IP o) {
  15.                 // TODO Auto-generated method stub
  16.                 String str1 = o.getIp();
  17.                 String str2 = this.ip;
  18.                 String[] ch1 = str1.split("\\.");
  19.                 String[] ch2 = str2.split("\\.");
  20.                 int x=0;
  21.                 //此处为判断两个ip地址从ch[0-3]的大小。
  22.                 while(x<4){
  23.                         if(Integer.valueOf(ch1[x])>Integer.valueOf(ch2[x])){
  24.                                 return -1;
  25.                         }else if(Integer.valueOf(ch1[x])==Integer.valueOf(ch2[x])){
  26.                                 x++;
  27.                         }else{
  28.                                 return 1;
  29.                         }
  30.                 }
  31.                 return 0;
  32.         }
  33. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

1 个回复

倒序浏览
谢谢了  ,这问题困扰我太久了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马