如何在java中用“\\”替换“\”

IT小君   2021-10-20T06:37:14

我试图将字符串分解成数组并替换\\\,但无法做到,我也尝试过 String.replaceAll 之类的东西("\","\\");

我想提供 JNI 的路径,它只能以这种方式读取。

评论(4)
IT小君

String.replaceAll在这种情况下不要使用- 这是根据正则表达式指定的,这意味着您需要更多的转义。这应该没问题:

String escaped = original.replace("\\", "\\\\");

请注意,由于在 Java 字符串文字中,反斜杠被加倍 - 所以这里涉及实际字符串是“单反斜杠”和“双反斜杠” - 而不是双倍和四倍。

replace 适用于简单的字符串 - 不涉及正则表达式。

2021-10-20T06:37:14   回复
IT小君

你可以使用replaceAll

String escaped = original.replaceAll("\\\\", "\\\\\\\\");
2021-10-20T06:37:14   回复
IT小君

我想提供 JNI 的路径,它只能以这种方式读取。

那是不对的。您只需要在用编程语言声明的文字字符串中使用双反斜杠。您永远不必在运行时进行此替换。你需要重新思考你为什么要这样做。

2021-10-20T06:37:14   回复
IT小君

处理“\”可能是一种冒险,因为它在 Java 中被视为转义字符。你总是需要在字符串中“\”一个“\”。但是当您想在正则表达式中使用“\”时,乐趣就开始了,因为“\”在正则表达式中也是一个转义字符。因此,对于单个“\”,您需要在正则表达式中使用“\\”。

这是我找到此信息的链接:https : //www.rgagnon.com/javadetails/java-0476.html

我不得不将“\”转换为“\\”。我找到了我们可以使用的地方:

filepathtext = filepathtext.replace("\\","\\\\"); 

它有效。下面给出的是我如何实现它的图像。

https://i.stack.imgur.com/LVjk6.png

2021-10-20T06:37:14   回复