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

IT小君   2022-01-06T03:31:12

众所周知,我们可以使用

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

在 c# 中为了不加倍'\'。

但是在java中怎么做呢?

评论(5)
IT小君

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

String aa = "E:\\dev_workspace1\\AccessCore\\WebRoot\\DataFile";
2022-01-06T03:31:12   回复
IT小君

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

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

Windows 允许使用正斜杠和反斜杠作为路径分隔符。如果您将路径传递给与它发生冲突并失败的外部程序,它将不起作用,但这种情况很少见。

2022-01-06T03:31:13   回复
IT小君

可能不是您问题的直接答案,但我觉得应该指出这一点:

有一个依赖于系统的默认名称分隔符字符

2022-01-06T03:31:13   回复
IT小君

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

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

它将 在 Windows 上为您提供 “E:\dev_workspace1\AccessCore\WebRoot\DataFile”“E:/dev_workspace1/AccessCore/WebRoot/DataFile” 几乎在其他任何地方。

2022-01-06T03:31:13   回复
IT小君

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

如果你想在 Java 字符串中表示一个 '\',你必须用另一个来转义它:“这个字符串包含一个 \”。

2022-01-06T03:31:13   回复