代码之家  ›  专栏  ›  技术社区  ›  Edwin Tai

如何在Java中转义“\”字符

  •  5
  • Edwin Tai  · 技术社区  · 16 年前

    众所周知,我们可以利用

    string aa=@"E:\dev_workspace1\AccessCore\WebRoot\DataFile" 
    

    在c中,为了不使“\”加倍。

    但是在java中怎么做呢?

    5 回复  |  直到 16 年前
        1
  •  20
  •   notnoop    16 年前

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

    String aa = "E:\\dev_workspace1\\AccessCore\\WebRoot\\DataFile";
    
        2
  •  12
  •   Vinko Vrsalovic    16 年前

    没有整字符串转义运算符,但如果用于文件访问,可以使用正斜杠:

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

    Windows allows 作为路径分隔符的前后斜杠。如果您将路径传递给一个外部程序,而该程序与之发生冲突并失败,那么它将不起作用,但这是非常罕见的。

        3
  •  4
  •   Flo    16 年前

    也许不能直接回答你的问题,但我觉得应该指出:

    有一个 system-dependent default name-separator character .

        4
  •  3
  •   Robert Petermeier    16 年前

    真正独立于系统的方法是:

    String aa = "E:/dev_workspace1/AccessCore/WebRoot/DataFile";
    String output = aa.replace('/', File.separatorChar);
    

    它会给你 “E:\dev\u workspace1\AccessCore\WebRoot\DataFile” 在Windows和 “E:/dev\u workspace1/AccessCore/WebRoot/DataFile” 就在其他地方。

        5
  •  1
  •   Mnementh    16 年前

    如果您编写一个路径,您应该在Java下使用“/”作为路径分隔符。“/”是Java下的正式路径分隔符,将转换为平台的相应分隔符(\在windows下,/在unix下)。如果传递给系统,字符串的其余部分将保持不变,因此“\”也可以在windows下工作。但表示此路径的正确方法是“E:/dev\u workspace1/AccessCore/WebRoot/DataFile”。

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