正则表达式练习:对IP地址进行排序
import java.util.TreeSet;
public class RegexTest {
public static void main(String[] args) {
Method2();//2.对IP进行排序
}
//2.对IP进行排序
private static void Method2() {
String str="192.168.10.34 127.0.0.1 3.3.3.3 105.70.11.55";
str=str.replaceAll("(\\d+)","00$1");//一串数字为一组,将每组中的每一段均加两个0
//然后每一段保留数字的后三位
str=str.replaceAll("0*(\\d{3})", "$1");//*表示出现0次或多次,{3}表示出现3次
//1.将ip地址切出来
String[] ips=str.split(" +");
//使用treeset进行排序
TreeSet<String> ts=new TreeSet<String>();
for(String ip:ips){
//System.out.println(ip);
ts.add(ip);//treeset对字符串一位一位的进行比较,但是对于ip分为了四段,我们想要的是一段一段的比较,所以我们将每段都补齐为三位
}
for(String ip:ts){
System.out.println(ip);
}
}
}
运行结果: