2009-07-23 75 views

回答

20

不幸的是,Java中没有完整的字符串转义运算符。您需要编写的代码为:

String aa = "E:\\dev_workspace1\\AccessCore\\WebRoot\\DataFile"; 
12

没有整串逃避运营商,但是,如果它是文件的访问,你可以使用一个正斜杠:

String aa="E:/dev_workspace1/AccessCore/WebRoot/DataFile"; 

Windows allows向前和向后斜杠作为路径分隔符。如果你将路径传递给外部程序并且失败,那么这将不起作用,但这很少见。

+0

它实际上是Java的聪明吗?我认为这是Windows允许/作为文件分隔符以及\的结果。 – 2009-07-23 07:16:56

+0

不知道 - 我一直认为它是Java,但它可能是Windows API调用自己。调整以防万一。 – paxdiablo 2009-07-23 08:21:24

+0

呵呵,我喜欢人们慷慨地为增加我的代表而工作!感谢Pax为改善答案! :-) – 2009-07-23 08:29:53

3

真正系统无关的方法是做到这一点:

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“ 几乎在其他地方。

1

如果您编写路径,则应在Java下使用'/'作为路径分隔符。 '/'是Java下的官方路径分隔符,将被转换为该平台的适当分隔符(\ windows下,/ unix下)。如果传递给系统,字符串的其余部分不变,所以'\'也可以在windows下运行。但是,表示此路径的正确方法是“E:/ dev_workspace1/AccessCore/WebRoot/DataFile”。

如果要在Java字符串中表示'\',则必须用另一个字符转义它:“This String contains a \”。