用正斜杠“/”动态替换反斜杠“\”[重复]

Posted

技术标签:

【中文标题】用正斜杠“/”动态替换反斜杠“\\”[重复]【英文标题】:Dynamically replacing backward slash '\' with foward slash '/' [duplicate]用正斜杠“/”动态替换反斜杠“\”[重复] 【发布时间】:2013-05-26 03:42:13 【问题描述】:

我从系统中获取我的浏览文件位置,所以生成的字符串路径为

String path = "C:\Documents and Settings\abcd\Desktop\d.txt";

我的输入来自浏览按钮,因此输入文件路径是动态的。 我需要将反斜杠“\”替换为正斜杠“/”,以便我可以在编码中进一步使用该路径。 我需要动态地执行此操作。谁能告诉我怎么做。

我想要的输出是

C:/Documents and Settings/abcd/Desktop/d.txt

提前致谢。

正确答案---

以下是上述问题的正确答案--- String newPath = path.replaceAll("\\", "/");

【问题讨论】:

你尝试了什么?你有什么问题? 如果动态获取路径,则不需要替换反斜杠。如果您的 String 是像您一样的文字,则会产生编译错误。 如上所述,我正在动态获取路径,如果再次用于定位文件,则会产生错误。 【参考方案1】:

您可以使用replaceAll 替换字符串中的子字符串:

String path = "C:\Documents and Settings\abcd\Desktop\d.txt";
String goodPath = path.replaceAll("\\", "/");

【讨论】:

【参考方案2】:

如果不转义反斜杠字符,第一条语句将无法编译。反斜杠字符用于表示控制字符或 unicode 文字的开头,因此必须转义以表示 \ 文字值本身。

你可以的

String path = "C:\\Documents and Settings\\abcd\\Desktop\\d.txt";
String newPath = path.replace("\\", "/");

【讨论】:

忽略这是一个 dup ... s/replace/replaceAll/ 来自 javadoc 的替换 返回一个新字符串,该字符串是用 newChar 替换此字符串中的 所有 个 oldChar。 @BrianRoach: replaceAll 采用正则表达式。 您能否详细说明您如何将 String path = "C:\Documents and Settings\abcd\Desktop\d.txt" 更改为 "C:\\Documents and Settings\\abcd\\Desktop \\d.txt"。 你是说为什么? - 确定使用\` 表示控制字符的开头,因此您需要在String 中对其进行转义。

以上是关于用正斜杠“/”动态替换反斜杠“\”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

VS下的C++代码引用文件时文件路径要用正斜杠“/”,而不能用反斜杠““

使用 sed [重复] 替换包含反斜杠的字符串

python中的正斜杠反斜杠

Python 正斜杠/与反斜杠

Python中的正斜杠与反斜杠

如何在VIM findsearch中转义反斜杠和正斜杠?[重复]