1、補(bǔ)零,使得可以按照字符串順序進(jìn)行比較。
2、截取保留后三位(ip地址最多就3位)。
3、利用Arrays.sort()方法對(duì)截取的字符串進(jìn)行排序。。
4、去除多余的0,回復(fù)ip原樣。
5、實(shí)現(xiàn)代碼:
package IPSort;import java.util.Arrays;/** * 利用正則表達(dá)對(duì)IP進(jìn)行排序,分四步 * @author tiger * */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、補(bǔ)零------"); for (int i = 0; i < ips.length; i++) { ips[i] = ips[i].replaceAll("(//d+)", "00$1"); System.out.println(ips[i]); } System.out.println("------2、截取------"); for (int i = 0; i < ips.length; i++) { ips[i] = ips[i].replaceAll("0*(//d{3})", "$1"); System.out.println(ips[i]); } System.out.println("------3、排序------"); Arrays.sort(ips); for (int i = 0; i < ips.length; i++) { System.out.println(ips[i]); } System.out.println("------4、去零------"); for (int i = 0; i < ips.length; i++) { ips[i] = ips[i].replaceAll("0*(//d+)", "$1"); System.out.println(ips[i]); } }}
6、運(yùn)行結(jié)果:
------原IP地址------10.2.4.23192.168.1.2173.68.46.65191.158.6.29.2.4.23------1、加零,按字符串順序比較------0010.002.004.002300192.00168.001.00200173.0068.0046.006500191.00158.006.002009.002.004.0023------2、截取,保留三位------010.002.004.023192.168.001.002173.068.046.065191.158.006.002009.002.004.023------3、排序------009.002.004.023010.002.004.023173.068.046.065191.158.006.002192.168.001.002------4、去零------9.2.4.2310.2.4.23173.68.46.65191.158.6.2192.168.1.2
以上所述是小編給大家介紹的利用正則表達(dá)對(duì)IP進(jìn)行排序的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答