java中的字符串替换问题

Stringstr="/D:/Users/Administrator/Workspaces/MyEclipse%208.51/work/work/.metadata/.m... String str = "/D:/Users/Administrator/Workspaces/MyEclipse%208.51/work/work/.metadata/.me_tcat7/webapps/wanZhuangWuDang3/RoleMenus/";
System.out.println(str.replaceAll("/", "\\\\"));

结果:
\D:\Users\Administrator\Workspaces\MyEclipse%208.51\work\work\.metadata\.me_tcat7\webapps\wanZhuangWuDang3\RoleMenus\

为什么:?
String str = "/D:/Users/Administrator/Workspaces/MyEclipse%208.51/work/work/.metadata/.me_tcat7/webapps/wanZhuangWuDang3/RoleMenus/";
System.out.println(str.replaceAll("/", "\\"));
报Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
展开
 我来答
yugi111
2014-11-06 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
在java中\用\\表示,2个\就用4个\表示

你的\\代表1个\,在程序中不被解析,需要转义处理,于是再多2个\,否则出错
追问
在替换的时候,\\代表一个\,而java中,字符串如果是这样:
\D:\Users\Administrator\Workspaces\MyEclipse%208.51
那么他的存储将会是这样:
\\D:\\Users\\Administrator\\Workspaces\\MyEclipse%208.51
所以我们应该用\\去替换一个/,而产生一个\由\\,所以写成\\\\
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式