码迷,mamicode.com
首页 > 其他好文 > 详细

正则表达式--——组叠词

时间:2014-07-20 15:45:41      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:正则表达式

需求

将下列字符串转成:我要学编程:

我我...我我...我要..要要...要要...学学学..学学...编编编编....编程..程....程程程程..程.

1,将所有.去掉   s.replace("\.",""); 或者 s.replaceAll("\\.+","");

import java.lang.*;
import java.util.*;
class regText 
{
	public static void main(String[] args) 
	{
		text();
		IPSort();
	}
	public static void text()
	{
		String s = "我我...我我...我要..要要...要要...学学学..学学...编编编编....编程..程....程程程程..程.";
		//s = s.replaceAll("\\.+","");//去掉字符 可用空字符串替换
		s= s.replace(".","");
		System.out.println("["+s+"]");
	}
	/*
	需求
将IP地址进行地址段顺序的排序
192.168.1.254 102.49.23.103 10.10.10.5 2.2.2.2 127.0.0.1
按字符串自然顺序排序,只要让它们每一段都是3位即可
1,按照每一段需要的最多的0进行补齐,那么每一段就会至少保证有3位
2,将每一段只保留3位 这样 所有的IP地址都是每一段3位
3,将排序好的IP地址输出 补的0去掉
	*/
	public static void IPSort()
	{
		String IPs = "192.168.1.254 102.49.23.103 10.10.10.5 2.2.2.2 127.0.0.1";
		//IP所有段都补上3个0
		IPs = IPs.replaceAll("(\\d+)","00$1");
		System.out.println(IPs);
		//然后 保留后面的三位
		IPs = IPs.replaceAll("0*(\\d{3})","$1");
		System.out.println(IPs);
		//按照空格 切割
		String[] IP = IPs.split(" +");
		for(String s:IP)
		{
			System.out.println(s);
		}
		System.out.println("==============");
		/*
		//对IP进行自然排序  Arrays.sort()方法
		Arrays.sort(IP);
		for(String s:IP)
		{
			//把字段前面的0去掉
			s = s.replaceAll("0*(\\d+)","$1");//去掉前面的0保留后面的0
			System.out.println(s);
		}
		*/
		TreeSet<String> ts = new TreeSet<String>();
		for(String s:IP)
		{
			//将IP添加到集合  会自动排序
			ts.add(s);
		}
		for(String s:ts)
		{
			//把字段前面的0去掉
			s = s.replaceAll("0*(\\d+)","$1");
			System.out.println(s);
		}
	}
}


本文出自 “要么拼命,要么滚回去!” 博客,请务必保留此出处http://jiangzuun2014.blog.51cto.com/8732469/1440431

正则表达式--——组叠词

标签:正则表达式

原文地址:http://jiangzuun2014.blog.51cto.com/8732469/1440431

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!