IP地址排序(使用正则表达式)

本文介绍了一种使用Java实现的IP地址分类与排序方法。通过正则表达式处理,将IP地址标准化并按A、B、C类进行排序。文章详细展示了如何通过字符串操作和数组排序实现这一功能。

需求:给定一组IP地址,对IP地址按照A、B、C类进行排序

说明:给定的IP地址是一个字符串。给定的IP地址如下:

String ip_str = "23,12,10.5  192.168.100.223   3.3.3.3       10.10.10.10";

package mypack;

import java.util.Arrays;

public class RegexDemo {

	public static void main(String[] args) {
		RegexTest1();
	}

	public static void RegexTest1() {
		//对给定的ip地址排序
		String ip_str = "23,12,10.5  192.168.100.223   3.3.3.3       10.10.10.10";
		
		//首先对每个IP地址的每一段都在最高位补两个零
		ip_str = ip_str.replaceAll("(\\d+)", "00$1");
		System.out.println(ip_str); //0023,0012,0010.005  00192.00168.00100.00223   003.003.003.003       0010.0010.0010.0010
		
		//把每个IP地址的每一段都格式为统一的三位
		ip_str = ip_str.replaceAll("0*(\\d{3})", "$1");
		System.out.println(ip_str); //023,012,010.005  192.168.100.223   003.003.003.003       010.010.010.010
		
		//用正则表达式" +"对字符串进行分割操作,得到一个IP地址字符串
		String[] ips = ip_str.split(" +");
		
		//对IP地址字符串进行排序
		Arrays.sort(ips);
		for(String ip : ips){
			//输出之前,把IP地址中多余的零去掉
			System.out.println(ip.replaceAll("0*(\\d+)", "$1"));
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值