import java.util.Arrays;
public class IP_Sort {
public static void main(String[] args){
String[] ip_array = {"192.68.0.254","172.22.144.156","172.22.145.0","255.255.255.2","8.109.90.30"};
for(int i =0;i<ip_array.length;i++){
// add 00 before every integer
String regex = "(\\d+)";
ip_array[i] = ip_array[i].replaceAll(regex, "00$1");
// only three digits left
regex = "0*(\\d{3})";
ip_array[i] = ip_array[i].replaceAll(regex, "$1");
}
Arrays.sort(ip_array); //key sort [***sort by natural sequence****]
for(int i = 0;i<ip_array.length;i++){
System.out.println(ip_array[i]);
}
System.out.println("-----------------------");
for(int i = 0;i<ip_array.length;i++){
//remove extra 0 before every digit
ip_array[i] = ip_array[i].replaceAll("0*(\\d+)", "$1");
System.out.println(ip_array[i]);
}
}
}
运行结果:
008.109.090.030
172.022.144.156
172.022.145.000
192.068.000.254
255.255.255.002
-----------------------
8.109.90.30
172.22.144.156
172.22.145.0
192.68.0.254
255.255.255.2