问题:把以下IP存入一个txt文件,编写程序把这些IP按数值大小,从小到达排序并打印出来。
* 61.54.231.245
* 61.54.231.9
* 61.54.231.246
* 61.54.231.48
* 61.53.231.249
前面的代码我就不发了,就分享一下IP的排序方法- class IP implements Comparable<IP>{
- private String ip;
- public IP(String ip){
- this.ip = ip;
- }
- public String getIp() {
- return ip;
- }
- public void setIp(String ip) {
- this.ip = ip;
- }
- //增加排序方法
- @Override
- public int compareTo(IP o) {
- // TODO Auto-generated method stub
- String str1 = o.getIp();
- String str2 = this.ip;
- String[] ch1 = str1.split("\\.");
- String[] ch2 = str2.split("\\.");
- int x=0;
- //此处为判断两个ip地址从ch[0-3]的大小。
- while(x<4){
- if(Integer.valueOf(ch1[x])>Integer.valueOf(ch2[x])){
- return -1;
- }else if(Integer.valueOf(ch1[x])==Integer.valueOf(ch2[x])){
- x++;
- }else{
- return 1;
- }
- }
- return 0;
- }
- }
复制代码 |