黑马程序员技术交流社区

标题: 正则表达式问题,求指教 [打印本页]

作者: hrfhwy    时间: 2015-12-8 20:37
标题: 正则表达式问题,求指教
//将ip地址进行自然顺序的排序
//ip=ip.replaceAll("0*(\\d{3})","$1");理解不了,为什么是0*,而不是0+
//System.out.println(addr.replaceAll("0*(\\d+)","$1"));//这个也不理解
String ip="192.168.1.254  102.49.67.9   10.10.10.10  2.2.2.2   8.109.90.30";
                ip=ip.replaceAll("(\\d+)","00$1");
                System.out.println(ip);
                ip=ip.replaceAll("0*(\\d{3})","$1");
                System.out.println(ip);
                String[] addrs=ip.split(" +");
                Arrays.sort(addrs);
                for (String addr:addrs )
                {
                        System.out.println(addr.replaceAll("0*(\\d+)","$1"));
                }


作者: VisionDo    时间: 2015-12-8 22:46
  1. package exp;

  2. import java.util.Arrays;

  3. public class SortIp {

  4.         public static void main(String[] args) {
  5.                
  6.                 String ip="192.168.1.254  102.49.67.9   10.10.10.10  2.2.2.2   8.109.90.30";
  7.                 SortIpFunc(ip);

  8.         }

  9.         private static void SortIpFunc(String ip){
  10.                 //小数点切割的时候,一定要使用转义符(双斜杠)
  11.                 String[] StrIp =  ip.replaceAll(" +", ".").split("\\.");
  12.                
  13.                 int[] NumIp = new int[StrIp.length];
  14.                
  15.                 for(int i = 0; i< StrIp.length; i++){
  16.                         NumIp[i] = Integer.valueOf(StrIp[i]);//将数字转换成整形数值
  17.                 }
  18.                
  19.                 Arrays.sort(NumIp);
  20.                
  21.                 for(int index:NumIp)
  22.                         System.out.print(index+" ");
  23.                   
  24.         }
  25.        
  26. }
复制代码

作者: mm2015    时间: 2015-12-8 23:00
还没学习呢                              
作者: Yuto吕    时间: 2015-12-9 09:39
+表达式至少出现1次,相当于 {1,0}
*表达式不出现或出现任意次,相当于 {0,}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2