黑马程序员技术交流社区

标题: 求助 关于字符串的replaceAll()方法 [打印本页]

作者: gao5867565    时间: 2016-10-15 18:53
标题: 求助 关于字符串的replaceAll()方法
[Java] 纯文本查看 复制代码
String str = "goOd gooD stUdy dAy dAy up";
//String str2 = str.replaceAll("\\b([A-Za-z])",(Character.toUpperCase(("$1".charAt(0))) + ""));
String str2 = str.replaceAll("\\b([A-Za-z])",(("$1").charAt[0] + ""));  //这里出现异常


为什么会出现字符串越界异常?求大神解答  
作者: IceLoveInFire丶    时间: 2016-10-15 20:29
我想知道$1是不是要用在同一个正则表达式里面? 第二个字符串还能这样用呢?
作者: IceLoveInFire丶    时间: 2016-10-15 20:31
本帖最后由 IceLoveInFire丶 于 2016-10-15 20:35 编辑

貌似不可以吧 - -。都不在同一个字符串内
作者: 13902480061    时间: 2016-10-15 21:09
\\b 改成\b代表意思不一样。

作者: fdzx0707fh    时间: 2016-10-15 23:52
等待真相!
作者: gao5867565    时间: 2016-10-16 09:19
我知道为什么了,("$1").charAt[0],这语句编译器不会先将 $1替换成成捕获的第一组字符,而是先将“$1”当做普通字符串,使用charAt方法,获取到$ 符号,就报错了(不能单独使用$符号当做替换参数)。
作者: 细听风语为梧桐    时间: 2016-10-16 12:10
$符号应该放在同一个正则里面吧
作者: LARK    时间: 2016-10-16 13:02
好复杂,不懂

作者: GXM    时间: 2016-10-16 18:25
是方法重载的原因吗?我们上课讲得需要两个形参呢。。

作者: 哦啊啊    时间: 2016-10-16 18:48
这是什么蓝瘦香菇





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