免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 12237 | 回复: 15
打印 上一主题 下一主题

求教:java中字符串"\"替换的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-22 15:21 |只看该作者 |倒序浏览
在java中如何将字符串"D:\test\test"中的"\"替换为"\\"?

论坛徽章:
0
2 [报告]
发表于 2006-07-22 16:33 |只看该作者

回复 1楼 liutao_eagle 的帖子

我试过用String中的replaceAll方法
String str="D:\test\test".replaceAll("\","\\");
报错:
ava.lang.Error: 无法解析的编译问题:
        方括号不匹配
        标记“Invalid Character”上有语法错误,应为 ")"

        at StringTest.main(StringTest.java:34)
Exception in thread "main"

论坛徽章:
0
3 [报告]
发表于 2006-07-22 16:39 |只看该作者
\t是转义字符了,被看成是一个,根本就没有\存在

论坛徽章:
0
4 [报告]
发表于 2006-07-23 12:26 |只看该作者

回复 3楼 Jade_King 的帖子

那如果字符串是这样了
FileDialog fd=new FileDialog(fr,"test",FileDialog.LOAD);
String strFileName=fd.getDirectory()+fd.getFile();
strFileName得到了一个文件的完整路径,我想将其中的"\"转换成"\\",如何处理

论坛徽章:
0
5 [报告]
发表于 2006-07-23 17:53 |只看该作者
strFileName.replaceAll("\\","\\\\");

论坛徽章:
0
6 [报告]
发表于 2006-07-24 20:06 |只看该作者
我也是弄了半天  才知道\是转义字符  折腾死人了

论坛徽章:
0
7 [报告]
发表于 2006-07-25 11:10 |只看该作者

回复 5楼 perryhg 的帖子

好象还是不行,代码如下:
FileDialog fd=new FileDialog(fr,"test",FileDialog.LOAD);
fd.show();
String strFileName=fd.getDirectory()+fd.getFile();
System.out.println(strFileName.replaceAll("\\","\\\\"));

提示错误:
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
        at java.util.regex.Pattern.error(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.util.regex.Pattern.<init>(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.lang.String.replaceAll(Unknown Source)
        at StringTest$1.actionPerformed(StringTest.java:23)
        at java.awt.MenuItem.processActionEvent(Unknown Source)
        at java.awt.MenuItem.processEvent(Unknown Source)
        at java.awt.MenuComponent.dispatchEventImpl(Unknown Source)
        at java.awt.MenuComponent.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

论坛徽章:
0
8 [报告]
发表于 2006-07-25 11:48 |只看该作者
strFileName.replaceAll("\\\\","\\\\\\\\");

论坛徽章:
0
9 [报告]
发表于 2006-07-25 12:22 |只看该作者
仔细看一下regex的pattern定义方法

论坛徽章:
0
10 [报告]
发表于 2006-07-25 12:37 |只看该作者

回复 8楼 tinywind 的帖子

试了一下,strFileName.replaceAll("\\\\","\\\\\\\\"); 这种方法可以实现。
但是还是搞不清原理,能否给解释一下,谢谢!!(现在只知道"\"这个是转义字符,觉得"\\"就应该表示文件中的分隔符了吧,为什么是"\\\\"?)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP