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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

主要输出结果是:

10.10.10.10
187.255.255.255
192.168.1.154
196.154.1.2
198.40.5.4
2.2.2.2

问题是:如何排序

3 个回复

倒序浏览
  1. package com.itcast.regex;

  2. import java.util.TreeSet;

  3. public class IpRegexPractice {

  4.         /**
  5.          * @param args
  6.          */
  7.         public static void main(String[] args) {
  8.                 // TODO Auto-generated method stub
  9.                 ipSort("192.168.1.154        196.154.01.002  10.10.10.10  2.2.2.2    198.40.5.4   187.255.255.255");
  10.         }
  11.        
  12.         public static void ipSort(String ip){
  13.                
  14.                 //都视为一位数字,前面先加上00
  15.                 ip=ip.replaceAll("(\\d+)", "00$1");
  16.                 System.out.println(ip);
  17.                
  18.                 //去掉数字前面多余的0
  19.                 ip=ip.replaceAll("0*(\\d+{3})","$1");
  20.                 System.out.println(ip);
  21.                
  22.                 //获取地址值
  23.                 String[]arr=ip.split(" +");
  24.                 TreeSet<String> ts=new TreeSet<String>();
  25.                
  26.                 for (String string : arr) {
  27.                         ts.add(string);
  28.                 }
  29.                
  30.                 for (String string : ts) {
  31.                         System.out.println(string.replaceAll("0*(\\d+)","$1"));
  32.                 }
  33.         }

  34. }
复制代码



网速太慢,代码貌似没传上去,

评分

参与人数 1技术分 +1 收起 理由
李小然 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
话说,需要写比较器么?
回复 使用道具 举报 1 0
import java.util.*;
class dz
{
        public static void sop(Object obj)
        {
                System.out.println(obj);
        }
        public static void main(String[] args)
        {
                String str="10.10.10.10 187.255.255.255 192.168.1.154 196.154.1.2 198.40.5.4 2.2.2.2;
                xiaoyan(str);
        }
        public static void xiaoyan(String str)
        {
                str=str.replaceAll("(\\d+)","00$1");
                str=str.replaceAll("0*(\\d{3})","$1");
                TreeSet<String> s=new TreeSet<String>();
                String[] k=str.split(" +");
                for(String name:k)
                {
                        s.add(name);
                }
                for(String name:s)
                {
                        sop(name.replaceAll("0*(\\d+)","$1"));
                }

        }

}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马