大家都知道,我们可以在C#中,为了不加倍“\”使用如何逃脱“”字符在Java中
string [email protected]"E:\dev_workspace1\AccessCore\WebRoot\DataFile"
。
但在java中怎么办?
大家都知道,我们可以在C#中,为了不加倍“\”使用如何逃脱“”字符在Java中
string [email protected]"E:\dev_workspace1\AccessCore\WebRoot\DataFile"
。
但在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 \数据文件” 在Windows和 “E:/dev_workspace1/AccessCore/WebRoot/DataFile“ 几乎在其他地方。
如果您编写路径,则应在Java下使用'/'作为路径分隔符。 '/'是Java下的官方路径分隔符,将被转换为该平台的适当分隔符(\ windows下,/ unix下)。如果传递给系统,字符串的其余部分不变,所以'\'也可以在windows下运行。但是,表示此路径的正确方法是“E:/ dev_workspace1/AccessCore/WebRoot/DataFile”。
如果要在Java字符串中表示'\',则必须用另一个字符转义它:“This String contains a \”。
它实际上是Java的聪明吗?我认为这是Windows允许/作为文件分隔符以及\的结果。 – 2009-07-23 07:16:56
不知道 - 我一直认为它是Java,但它可能是Windows API调用自己。调整以防万一。 – paxdiablo 2009-07-23 08:21:24
呵呵,我喜欢人们慷慨地为增加我的代表而工作!感谢Pax为改善答案! :-) – 2009-07-23 08:29:53