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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Shey 中级黑马   /  2015-3-14 22:08  /  1264 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我试过replaceAll("\\")不行,网上只说了方法没有说原因,谁来帮助下,谢谢

11 个回复

倒序浏览
因为\为转义字符,只输入两个\相当于一个转义字符一个\,所以需要输入四个\,才能达到你想要的效果,如同想输入英文状态下的“必须在“前加一个\是一样的道理
回复 使用道具 举报
转义这个概念在老师的视频里有说的吧
回复 使用道具 举报
小七的 发表于 2015-3-15 02:01
因为\为转义字符,只输入两个\相当于一个转义字符一个\,所以需要输入四个\,才能达到你想要的效果,如同想 ...

可是我输入的路径是url="D:\QQMusicCache"
代码url.replaceAll("\\","/")报错
url.replaceAll("\\\\","/");才可以啊
回复 使用道具 举报
Rorine 发表于 2015-3-15 03:13
转义这个概念在老师的视频里有说的吧

可是我输入的路径是url="D:\QQMusicCache"
代码url.replaceAll("\\","/")报错
url.replaceAll("\\\\","/");才可以啊
回复 使用道具 举报
二个 \\ 代表一个 \ ,转意
回复 使用道具 举报
Shey 发表于 2015-3-15 07:14
可是我输入的路径是url="D:\QQMusicCache"
代码url.replaceAll("\\","/")报错
url.replaceAll("\\\\","/" ...

就是啊,你输入的这四个第一个和第三个是转义字符,就是将它们后面跟着的转义字符转化成实际意义上的反斜线的,这样说明白么
回复 使用道具 举报
那两个都是字符,你不要用字符串就好了,你可以用replaceAll('\\', '/');
用字符串时,'\\'相当于一个\,对比'\t',就是一个制表字符,你想要表示两个\\组成的字符串就需要"\\\\"=""+'\\'+'\\';
回复 使用道具 举报
Shey 中级黑马 2015-3-15 11:57:09
9#
小七的 发表于 2015-3-15 11:10
就是啊,你输入的这四个第一个和第三个是转义字符,就是将它们后面跟着的转义字符转化成实际意义上的反斜 ...

还是有点不明白,上面只有一个\啊,不过还是谢谢哈
回复 使用道具 举报
Shey 中级黑马 2015-3-15 11:58:14
10#
z47057554 发表于 2015-3-15 11:12
那两个都是字符,你不要用字符串就好了,你可以用replaceAll('\\', '/');
用字符串时,'\\'相当于一个\,对 ...

可是只有一个  \  啊
回复 使用道具 举报
本帖最后由 z47057554 于 2015-3-15 12:37 编辑
Shey 发表于 2015-3-15 11:58
可是只有一个  \  啊

这里面的字符串是正则表达式,它有自己对 \ 的定义规则,"\\"在正则表达式里是一个'\',"\\\\"在正则里就代表"\\",而"\\"在虚拟机里就代表一个 \
回复 使用道具 举报
Shey 中级黑马 2015-3-15 12:40:38
12#
z47057554 发表于 2015-3-15 12:36
这里面的字符串是正则表达式,它有自己对 \ 的定义规则,"\\"在正则表达式里是一个'\',"\\\\"在正则里就 ...

谢谢你,我这下明白了,再次感谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马