java - java中的字符替换

标签 java

我有一个这样的文件路径

\\ptrisf02\group\Corrolog\Other\Newfolder\SecurityTest\EV10222-01\FinalPack\REP WI\3101384589-(PN-5A1662).pdf

我想将 \\ 替换为 \\\\ ,将 \ 替换为 \\ 。我为此编写了这段代码

String r_Docpath=Docpath.replace('\\', '\\\\');

但它给出了无效的字符常量错误。我怎样才能正确地做到这一点?

我像这样的代码解决了问题;

String r_Docpath=Docpath.replace("\"", "\\\"");
String r2_Docpath=r_Docpath.replace("\\", "\\\\\"");

最佳答案

在Java中'用于创建char文字,它只能表示一个字符(char是类型它保存 16 位,并且 JVM 使用 UTF-16 编码,因此它只能存储一个字符 - 如果是通过 surrogate-pairs 创建的字符,甚至可以存储一半)。因此,当您编写 '\\\\' 时,就像编写 'ab' 一样,正如您所看到的,它试图将两个字符放入单个 char 中> 字面量,这会导致编译器提示。

为了将零个或多个字符分组到一个结构中,我们使用字符串类型。您可以使用 " 而不是 ' 创建字符串文字。

所以你所追求的似乎是

String r_Docpath = Docpath.replace("\\", "\\\\");
<小时/>

顺便说一句,在 Java 中您不应该以大写开头命名变量,因此不要使用 Docpath,而是使用 docpath 甚至 docPath。像 DocpathDocPath 这样的样式,其中第一个字符是大写的,是为类、接口(interface)、枚举(例如 String) List TimeUnit

关于java - java中的字符替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57822999/

相关文章:

java - 如何用 RXJava 替换 Thread.sleep()

java - 是否可以从注释中的字段值调用方法?

java - 将 Matlab 组件添加到 Java JWindow

java - Java中可以重复执行一个任务吗?

Java:在 HttpServlet 中写入时出现 IOException

java - 无法从 Jsp 文件中的 servlet 接收响应

java - start() 方法从 start() 调用线程......令人困惑

java - 堆栈溢出错误 : null in Android Studio | possible fix?

java - Hibernate 查询优化

java - 在 Android 中选择 SoundPool 还是 MediaPlayer 更好?