一、治疗口吃。

将字符串“我我我我我我我..........我.......要要要要要..................要要要要...学习习习习.......习习习习习习习习编程程程程程程.......程程程程程程程程程”变成“我要学习编程”

分析:先将....去掉:使用"\\.+"模式,再将叠词替换成一个:使用"(.)\\1+"模式。

代码:

 package p02.Exercise;

 public class Demo01 {
public static void main(String args[])
{
String str="我我我我我我我..........我.......要要要要要..................要要要要...学习习习习.......习习习习习习习习编程程程程程程.......程程程程程程程程程";
//1.先去掉.
String regex="\\.+";
str=str.replaceAll(regex, "");
// System.out.println(str);
//2.合并叠词。
regex="(.)\\1+";
str=str.replaceAll(regex, "$1");
System.out.println(str);
}
}

运行结果:

我要学习编程

二、ip地址排序。

将若干个ip地址排序输出。

"192.168.10.34  127.0.0.1   105.70.11.75            3.3.3.3"

思路:排序使用TreeSet自动完成,但是排序方式是根据字符串的字典序排序,要想按照大小排序,需要添加前导0,输出的时候需要去掉前导0.

代码:

 package p02.Exercise;

 import java.util.TreeSet;

 public class Demo02 {
public static void main(String args[])
{
String str="192.168.10.34 127.0.0.1 105.70.11.75 3.3.3.3";
//1.先分割ip地址。
String regex=" +";
String arr[]=str.split(regex);
for(String s:arr)
System.out.println(s);
System.out.println();
System.out.println(); //2.给每个字节段不足3位的补零,先补上两个0
regex="(\\d+)";
for(int i=0;i<arr.length;i++)
{
arr[i]=arr[i].replaceAll(regex, "00$1");
}
//3.去掉多余的0,只保留三位。
regex="0*(\\d{3})";
for(int i=0;i<arr.length;i++)
{
arr[i]=arr[i].replaceAll(regex, "$1");
System.out.println(arr[i]);
}
System.out.println();
System.out.println();
//4.放入TreeSet集合进行排序。
TreeSet <String>ts=new TreeSet<String>();
for(String s:arr)
{
ts.add(s);
}
regex="0*(\\d+)";
for(String s:ts)
{
System.out.println(s.replaceAll(regex, "$1"));
}
}
}

运行结果:

 192.168.10.34
127.0.0.1
105.70.11.75
3.3.3.3 192.168.010.034
127.000.000.001
105.070.011.075
003.003.003.003 3.3.3.3
105.70.11.75
127.0.0.1
192.168.10.34

在去掉多余的0的时候,使用的模式是:"0*(\\d+)",这样即使全部都是0,在最后使用$1进行替换的时候也能留住最后一个0。

三、校验邮箱。

使用的模式:"\\w+@[a-zA-Z0-9]+(\\.[a-z]{2,3}){1,2}",意思用户标识符为字母数字下划线,长度不限;邮件服务器域名第一个单词应为字母数字的组成,其余应为小写字母组成。

代码:

 package p02.Exercise;

 public class Demo03 {
public static void main(String args[])
{
String str="kdyzm@sina.com";
String regex="\\w+@[a-zA-Z0-9]+(\\.[a-z]{2,3}){1,2}";
System.out.println(str.matches(regex));
}
}

【JAVA正则表达式综合练习】的更多相关文章

  1. java正则表达式

    java正则表达式 1.Java正则表达式的语法与示例:  http://baike.xsoftlab.net/view/207.html 2.Java 正则表达式:  http://www.runo ...

  2. Java正则表达式入门——转自RUNOOB.COM

    Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...

  3. Java 正则表达式详解

    Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达式API. 正则表达式 一个正则表达式是一个用于文本搜索的文本模式.换句话说,在文本中搜索 ...

  4. 【转】详解Java正则表达式语法

    (转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...

  5. java正则表达式【大全】

    [正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$& ...

  6. JAVA正则表达式:Pattern类与Matcher类详解(转)

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  7. JAVA正则表达式:Pattern类与Matcher类详解

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  8. Java 正则表达式[转载]

    PS:转载自CSDN博客看上去很美 众所周知,在程序开发中,难免会遇到需要匹配.查找.替换.判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力.因此,学 ...

  9. Java正则表达式的应用

    在很多种情况下,我们都必须对字符串进行匹配,以便判断字符串的格式是否符合要求,对字符串中的内容进行提取.比如,我要从一段话aabdfe中,判断这段话是否有包含ab这个词,那么如果用if-else来判断 ...

随机推荐

  1. C++笔试题(转)

    http://blog.csdn.net/hxz_qlh/article/details/16864567 这里面列举的题考察的东西都非常细,包括strcpy,字符串,大.小端的判断,很容易犯错,值得 ...

  2. 网络数据包发送工具PacketSender中文源码

    在网上发现了一个好用的工具PacketSender,数据包发送器.对于写网络程序来说,有很大的便利性.虽然在linux下,netcat工具也很好用,但是这个也不错. 原本是英文的,给翻译了一下.这是基 ...

  3. Spring+SpringMVC+MyBatis+Maven 服务端XML配置

    项目目录结构 spring-mybatis.xml <?xml version="1.0" encoding="UTF-8"?> <beans ...

  4. 深度分析Linux下双网卡绑定七种模式 多网卡的7种bond模式原理

    http://blog.csdn.net/abc_ii/article/details/9991845多网卡的7种bond模式原理 Linux网卡绑定mode共有七种(~) bond0.bond1.b ...

  5. python——常用功能之文本处理

    前言 在生活.工作中,python一直都是一个好帮手.在python的众多功能中,我觉得文本处理是最常用的.下面是平常使用中的一些总结.环境是python 3.3 0. 基础 在python中,使用s ...

  6. 页面遮罩层,并且阻止页面body滚动。bootstrap模态框原理

    实现思路: 1.需要有一个层将body遮住,放在body上方. 2.修改body的overflow属性值为:hidden 废话不多说了,将关键代码贴出来了,兼容火狐,谷歌,ie 遮罩层的样式代码,红色 ...

  7. Jquery ajax调用webservice总结

    jquery ajax调用webservice(C#)要注意的几个事项: 1.web.config里需要配置2个地方 <httpHandlers>      <remove verb ...

  8. poj 1060

    http://poj.org/problem?id=1060 题意:多项式的运算的题目,不过这个运算有个特点,就是只要是同项的多项式,无论相加还是相减,都为0,给你三个多项式,分别为a,b,c. 要你 ...

  9. response content-type json

    2015年11月3日 15:47:43 百度知道:ajax开发中在请求服务器端的响应时, 对于每一种返回类型 规范的做法是要在服务端指定response的contentType 常遇到下面的几种情况: ...

  10. [转载]Masonry介绍与使用实践(快速上手Autolayout)

    原博地址 http://adad184.com/2014/09/28/use-masonry-to-quick-solve-autolayout/ 前言 1 MagicNumber -> aut ...