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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Beautiful 中级黑马   /  2013-2-13 19:42  /  1409 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 戴俊毅 于 2013-2-13 19:53 编辑

郁闷不用解决了,写半天视频往下看是居然讲到了这个,我还子各种百度{:soso_e127:}

先看下代码吧
public class StringDemo {
public static void main(String[] args){
//我是要替换叠字了的地方
  replaceAllDemo("faffagaeggddbbdeeee", "(.)\\1+","#");
  replaceAllDemo("faffagaeggddbbdeeee", "(.)\\1+","&");
  replaceAllDemo("faffagaeggddbbdeeee", "(.)\\1+","$1");
  replaceAllDemo("faffagaeggddbbdeeee", "(.)\\1+","$2");
}
public static void replaceAllDemo(String str,String reg,String newStr){
  str = str.replaceAll(reg, newStr);
  System.out.println(str);
  return;
}
运行结果为什么会出现这种结果这个$有特别含义么,其他的#和&都能替换掉,而$却替换不来,而我在后面加一个数字1居然保留了一个f额,有这样的用法么,查了下资料也没查到,知道的讲解一下,谢谢了。


2 个回复

倒序浏览
问题是不是已经自己解决了啊,看你的帖子是已解决。
$1 指的是 (.)   因为只有一组,所以$2报错
(.)\\1+代表任意多个重复字母,(.)代表任意一个字符,"(.)\\1+","$1"是将多个重复字符替换成一个
回复 使用道具 举报
张向辉 发表于 2013-2-13 20:24
问题是不是已经自己解决了啊,看你的帖子是已解决。
$1 指的是 (.)   因为只有一组,所以$2报错
(.)\\1+代 ...

嘿嘿谢谢 是已经自己解决了,因为那视频里下面讲解到了,而我刚好没看,看一半自己在练习写代码,结果整出这么个问题来,各种百度然后,写完问题继续看视频,结果后面讲到了,所以就来修改解决了呵呵
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马