黑马程序员技术交流社区

标题: 正则表达式的一个小练习,求解 [打印本页]

作者: love~陌    时间: 2014-3-26 09:08
标题: 正则表达式的一个小练习,求解
  1. /*
  2. 需求:
  3. 将下列字符串转成:我要学编程
  4. */
  5. import java.util.regex.*;
  6. class RegexTest
  7. {
  8.         public static void main(String[] args)
  9.         {
  10.                 String str="我我。。。。。。。。要。。要。。要。。。学。。。学。。。编。。。编。。。编程";
  11.                 str=str.replaceAll("\\。+","");
  12.                 System.out.println(str);
  13.                 System.out.println("--------我是华丽丽的分割线-------");

  14.                 str=str.replaceAll("(.)\\1+","$1");
  15.                 System.out.println(str);
  16.                 System.out.println("--------我是华丽丽的分割线-------");
  17.         }
  18. }

  19. 问题:
  20. String str="我我。。。。。。。。我要。。我要。。我要。。。要学。。。要学编。。。编。。。编。。。编程";
  21. 在这种情况下,上面代码就不能满足需求了,请问该如何修改代码?
复制代码

求解,谢谢各位
作者: 上官睿鹏    时间: 2014-3-26 09:54
str=str.replaceAll("\\。+","");这句中的中文“。”前面不用加\\
作者: ╰青青子佩ˊゝ    时间: 2014-3-28 07:54
两个地方提醒你!!
  1. class RegexTest{
  2.                 public static void main(String[] args){
  3.                         String str="我我。。。。。。。。我要。。我要。。我要。。。要学。。。要学编。。。编。。。编。。。编程";
  4.                         str=str.replaceAll("\\。+","");
  5.                 System.out.println(str);
  6.                 System.out.println("--------我是华丽丽的分割线-------");
  7.        
  8.                 str=str.replaceAll("(..)\\1+","$1");//1.你的这个地方的组里,即()里面加一点
  9.                 str=str.replaceAll("(.)\\1+","$1");//2.再加上这一行代码,就ok啦
  10.                 System.out.println(str);
  11.                 System.out.println("--------我是华丽丽的分割线-------");
  12.                 }
  13.         }               
复制代码





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