介绍
使用正则表达怎么对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
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。