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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[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] + ""));  //这里出现异常


为什么会出现字符串越界异常?求大神解答  

9 个回复

倒序浏览
我想知道$1是不是要用在同一个正则表达式里面? 第二个字符串还能这样用呢?
回复 使用道具 举报
本帖最后由 IceLoveInFire丶 于 2016-10-15 20:35 编辑

貌似不可以吧 - -。都不在同一个字符串内
回复 使用道具 举报
\\b 改成\b代表意思不一样。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
等待真相!
回复 使用道具 举报
我知道为什么了,("$1").charAt[0],这语句编译器不会先将 $1替换成成捕获的第一组字符,而是先将“$1”当做普通字符串,使用charAt方法,获取到$ 符号,就报错了(不能单独使用$符号当做替换参数)。
回复 使用道具 举报
$符号应该放在同一个正则里面吧
回复 使用道具 举报
LARK 中级黑马 2016-10-16 13:02:31
8#
回复 使用道具 举报
GXM 中级黑马 2016-10-16 18:25:49
9#
是方法重载的原因吗?我们上课讲得需要两个形参呢。。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马