【零碎JAVA】正则表达式
对于复杂的字符串处理,如果我们单过使用String类对她进行我们需要的处理会变得十分困难,编写代码会变的十分繁杂,此时,我们可以使用正则表达式来处理这样的问题。 java中的java.util.regex包中对正则表达式进行了描述。这个包中主要包含两个类,一个Pattern,一个Mathcer。其中Pattern可以理解为一个分装好的正则表达式实例对象,Mathcer可以理解为指定字符串与正则表达式匹配后产生的一个匹配器,他内部提供了很多对匹配后的结果的操作。使用起来比较便捷。 使用Pattern与Matcher的操作步骤如下:
处理字符串主要有以下几种操作:
习题: /* * 将IP字符串“192.168.1.150 2.2.2.2 10.16.48.123 56.78.123.253”按照网段顺序输出 * 思路: * 1.使用String的split方法将各个IP地址分割开来。 * 2.由于IP的每一段长度都不一样,无法进行准确的比较,我们需要将IP地址的每段都设置成3位, * 先给IP地址的每段前面添加两个0,然后取后三位,这样就可以统一起来。 * 3.使用集合存放字符串输出,由于需要有顺序,所以使用TreeSet存放。 */ import java.util.*; import java.util.regex.*; class IPSortDemo { public static void main(String[] args) { String str = new String("192.168.1.150 2.2.2.2 10.16.48.123 56.78.123.253"); str = str.replaceAll("([0-9]{1,3})","00$1"); str = str.replaceAll("0+([0-9]{3})","$1"); TreeSet<String> ts = new TreeSet<String>(); String[] arr_str = str.split(" "); for(String s : arr_str){ ts.add(s); } Iterator iterator = ts.iterator(); while(iterator.hasNext()){ String temp = (String)iterator.next(); sop(temp.replaceAll("0*(<a target=_blank target="_blank" href="file://d">d</a>+)","$1")); } } public static void sop(Object obj){ System.out.println(obj); } }
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |