String replaceAll 转义符替换的问题

dr2tr 2009-01-12 01:04:18
如程序:
String relPath = "C:/dafk/dfs/d";
relPath = relPath.replaceAll("/", "\\\\");

System.out.println(relPath);

为什么改成
relPath = relPath.replaceAll("/", "\\");

救出错了呢?

注:我需要的就是把/替换成\
...全文
893 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
小曦子 2009-01-12
  • 打赏
  • 举报
回复
"\\\\"已经不是转义符号了..而是字符串了.
酒剑仙 2009-01-12
  • 打赏
  • 举报
回复
1楼正解
其实是正则表达式在转换。\\\\ =\\=\
kukufly 2009-01-12
  • 打赏
  • 举报
回复
因为“\\”表示一个‘\’字符
而这个字符是特殊字符,所以还要进行加上‘\’来进行表示
所以你就要用"\\\\"。


正解!
nine_suns99 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 imasmallbird 的回复:]
因为“\\”表示一个‘\’字符
而这个字符是特殊字符,所以还要进行加上‘\’来进行表示
所以你就要用"\\\\"。
[/Quote]
恩,二楼说的是正确的
imasmallbird 2009-01-12
  • 打赏
  • 举报
回复
这页面实在刷不出来了
占一楼~~
Miracle1216 2009-01-12
  • 打赏
  • 举报
回复
不知道你说的是什么意思,但是楼上说得是对的!
dr2tr 2009-01-12
  • 打赏
  • 举报
回复
多谢回复

我怀疑是跟正则式有关,但一直以为replaceAll的第一个参数才是正则
事实上第二个也会作为正则式预处理一下,虽然没有实际意义

附篇文章供参考


http://biostar.blog.sohu.com/69732830.html
mizukusa 2009-01-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 imasmallbird 的回复:]
因为“\\”表示一个‘\’字符
而这个字符是特殊字符,所以还要进行加上‘\’来进行表示
所以你就要用"\\\\"。
[/Quote]
正解,因为这些特殊的字符需要转义的。
glglglglglgllll 2009-01-12
  • 打赏
  • 举报
回复
LS说的对
imasmallbird 2009-01-12
  • 打赏
  • 举报
回复
因为“\\”表示一个‘\’字符
而这个字符是特殊字符,所以还要进行加上‘\’来进行表示
所以你就要用"\\\\"。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧