查询反斜杠字符

时间:2014-12-20 15:57:44

标签: java escaping

下面是在java中构建目录路径的行。

在这里,File.separator是" \"在Windows和" /"在Unix上。

String path = System.getProperty("user.home") + File.separator + "workspace" + 
                                              File.separator + "JavaCode";

如果我对路径进行硬编码,它应该如下所示:

File path = new File("C:\\users\\david\\workspace\\JavaCode");

我的问题:

为什么我们在第二种情况下提到\\

2 个答案:

答案 0 :(得分:2)

这是因为Java中定义了字符串文字。反斜杠用于某些转义序列(例如"\n""\r"等),因此字面反斜杠也是转义序列("\\")。

回到你的代码,不要打扰,改为使用java.nio.file

final Path path = Paths.get(System.getProperty("user.home"), "workspace",
    "JavaCode");

适用于运行JVM(7+)的每个操作系统。

它会在您的计算机上正确返回Path "C:\\users\\david\\workspace\\JavaCode",就像我在"/home/fge/workspace/JavaCode"上返回{{1}}一样。

答案 1 :(得分:2)

因为,对于字符串,\转义字符:它表示以特殊方式解释以下字符(这就是为什么\n不是n)。在你的情况下,你希望{em>而不是特别解释\本身,因此你需要其中的两个:第一个说“对待下一个字符特殊”,下一个得到专门用处理\

相关问题