黑马程序员技术交流社区

标题: 这个需求用正则表达式,怎么一句话搞定,请给出相应的正则表达式 [打印本页]

作者: 羽狼之翼    时间: 2015-2-6 21:19
标题: 这个需求用正则表达式,怎么一句话搞定,请给出相应的正则表达式
String str = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
要求:去掉重复汉字,及点,最终得到:“我要学编程”一句话。
作者: Piaget    时间: 2015-2-6 22:25
汉字去重可以使用replaceAll("(.)\\1{1,}","$1")。没办法一句话写完。汉字是去重。点是删除。怎么可以同时进行。不解。。。。
  1. public class TestZhengze
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String s1 = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
  6.                 s1=s1.replace(".","");//去掉点
  7.                 //获取重复的正则表达式,替换为“$1”\\1  的1
  8.                 String ss = "(.)\\1{1,}";
  9.                 s1=s1.replaceAll(ss, "$1");
  10.                 System.out.println(s1);
  11.         }
  12. }
复制代码

作者: Piaget    时间: 2015-2-6 22:27
s1.replace(".","").replaceAll(ss, "$1");     一句话完成只有连接起来了
作者: mengxiang1993    时间: 2015-2-7 11:11
Piaget 发表于 2015-2-6 22:25
汉字去重可以使用replaceAll("(.)\\1{1,}","$1")。没办法一句话写完。汉字是去重。点是删除。怎么可以同时 ...

这段代码还是没理解,//1,和$1不知道什么意思?是反向引用吗?
作者: franksight    时间: 2015-2-7 11:39
努力学习中




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2