使用正则表达怎么对IP进行排序

  介绍

使用正则表达怎么对IP进行排序?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1,补零,使得可以按照字符串顺序进行比较。

2,截取保留后三位(IP地址最多就3位).

3,利用Arrays.sort()方法对截取的字符串进行排序. .

4,去除多余的0,回复IP原样。

5,实现代码:

package  IPSort;   import  java.util.Arrays;/* *   ,*利用正则表达对IP进行排序,分四步   ,* @author 老虎   ,*   ,*/public  class  IPSortTest  {   ,public  static  void  main (String [], args), {   ,String [] ips =, {“10.2.4.23",“192.168.1.2",“173.68.46.65",“191.158.6.2",“9.2.4.23"};   ,   ,System.out.println(“- - - - - - 1,补零- - - - - -“);   ,for  (int 小姐:=,0;,小姐:& lt;, ips.length;,我+ +),{   ,ips[我]=,ips[我].replaceAll (“(\ \ d +)“,,“00 1美元“);   [我],System.out.println (ips);   ,}   ,System.out.println(“- - - - - - 2截取- - - - - -“);   ,for  (int 小姐:=,0;,小姐:& lt;, ips.length;,我+ +),{   ,ips[我]=,ips[我].replaceAll (“0 * (\ \ d{3}),,,, 1美元“);   [我],System.out.println (ips);   ,}   ,System.out.println(“- - - - - - 3排序- - - - - -“);   ,Arrays.sort (ips);   ,for  (int 小姐:=,0;,小姐:& lt;, ips.length;,我+ +),{   [我],System.out.println (ips);   ,}   ,System.out.println(“- - - - - - 4,去零- - - - - -“);   ,for  (int 小姐:=,0;,小姐:& lt;, ips.length;,我+ +),{   ,ips[我]=,ips[我].replaceAll (“0 * (\ \ d +),,,, 1美元“);   [我],System.out.println (ips);   ,}   ,}   }

6,运行结果:

- - - - - -原IP地址- - - - - -   10.2.4.23   192.168.1.2   173.68.46.65   191.158.6.2   9.2.4.23   - - - - - - 1,加零,按字符串顺序比较- - - - - -   0010.002.004.0023   00192.00168.001.002   00173.0068.0046.0065   00191.00158.006.002   009.002.004.0023   - - - - - - 2截取,保留三位- - - - - -   010.002.004.023   192.168.001.002   173.068.046.065   191.158.006.002   009.002.004.023   - - - - - - 3排序- - - - - -   009.002.004.023   010.002.004.023   173.068.046.065   191.158.006.002   192.168.001.002   - - - - - - 4,去零- - - - - -   9.2.4.23   10.2.4.23   173.68.46.65   191.158.6.2   192.168.1.2

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

使用正则表达怎么对IP进行排序