如何在java中把"\"替换成"\"?

问题描述 投票:12回答:4

我试着把字符串分解成数组,然后替换成一个数组。\\\ 我也试过String.replaceAll这样的方法,但做不到。("\","\\");. 我想提供一个路径给JNI,但它只以这种方式读取。谁能帮我一下,请。谢谢你的帮助。

java regex string backslash
4个回答
30
投票

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

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

请注意,反斜杠是双倍的,因为是在Java字符串的字面意义上 - 所以 实际 这里涉及的字符串是 "单反斜杠 "和 "双反斜杠",而不是双倍和四倍。

replace 适用于简单的字符串--不涉及regexes。


2
投票

你可以使用 replaceAll:

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

1
投票

我想提供一个JNI的路径,但它只用这种方式读取。

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


0
投票

处理"\"可能是一个相当大的冒险,因为它在Java中被认为是一个转义字符。你总是需要在String中"\"一个"\"。但是当你想在regex表达式中使用"\"时,乐趣就开始了,因为"\"在regex中也是一个转义字符。所以对于一个"\",你需要在一个regex表达式中使用"\"。

这里是我找到这些信息的链接。https:/www.rgagnon.comjavadetailsjava-0476.html

我必须把''转换为''''。我发现在某处我们可以使用。

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

下面是我如何实现它的图片。

https:/i.stack.imgur.comLVjk6.png。

© www.soinside.com 2019 - 2024. All rights reserved.