A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© love~陌 中级黑马   /  2014-3-26 09:08  /  1391 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. 在这种情况下,上面代码就不能满足需求了,请问该如何修改代码?
复制代码

求解,谢谢各位

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

2 个回复

倒序浏览
str=str.replaceAll("\\。+","");这句中的中文“。”前面不用加\\
回复 使用道具 举报
两个地方提醒你!!
  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.         }               
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马