【发布时间】:2009-07-23 05:55:07
【问题描述】:
众所周知,我们可以使用
string aa=@"E:\dev_workspace1\AccessCore\WebRoot\DataFile"
在c#中为了不加倍'\'。
但是在java中怎么做呢?
【问题讨论】:
众所周知,我们可以使用
string aa=@"E:\dev_workspace1\AccessCore\WebRoot\DataFile"
在c#中为了不加倍'\'。
但是在java中怎么做呢?
【问题讨论】:
不幸的是,Java 中没有全字符串转义运算符。您需要将代码编写为:
String aa = "E:\\dev_workspace1\\AccessCore\\WebRoot\\DataFile";
【讨论】:
没有完整的字符串转义符,但如果是用于文件访问,你可以使用正斜杠:
String aa="E:/dev_workspace1/AccessCore/WebRoot/DataFile";
Windows allows 正反斜杠作为路径分隔符。如果您将路径传递给外部程序,该程序会对其进行破坏并失败,它将无法正常工作,但这种情况非常罕见。
【讨论】:
可能不是您问题的直接答案,但我觉得应该指出这一点:
【讨论】:
真正独立于系统的方法是这样做:
String aa = "E:/dev_workspace1/AccessCore/WebRoot/DataFile";
String output = aa.replace('/', File.separatorChar);
它会给你 “E:\dev_workspace1\AccessCore\WebRoot\DataFile” 在 Windows 和 “E:/dev_workspace1/AccessCore/WebRoot/DataFile” 几乎在其他任何地方。
【讨论】:
如果你写一个路径,你应该使用'/'作为Java下的路径分隔符。 '/' 是 Java 下的官方路径分隔符,将被转换为适用于平台的分隔符(windows 下的 \,unix 下的 /)。如果传递给系统,字符串的其余部分保持不变,因此“\”也可以在 Windows 下使用。但是表示这个路径的正确方式是“E:/dev_workspace1/AccessCore/WebRoot/DataFile”。
如果你想在 Java 字符串中表示一个 '\',你必须用另一个转义它:“This String contains a \”。
【讨论】: