【问题标题】: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 是像您一样的文字,则会产生编译错误。
  • 如上所述,我正在动态获取路径,如果再次用于定位文件,则会产生错误。

标签: java path


【解决方案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 中对其进行转义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多