【问题标题】:How would I format a file location? [duplicate]我将如何格式化文件位置? [复制]
【发布时间】:2016-02-24 04:35:33
【问题描述】:

我有变量directory,它将是用户输入的目录, 如 “C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”。问题是程序无法识别目录,因此不会通过Runtime.getRuntime().exec(new String[] {directory});启动它

我将如何制作一个方法/算法,从directory 获取每个\ 并将其转换为\\

if (directory.substring(j, j+1).equals("\\"))
{
    //directory.substring(j, j+1) == "\\\\";
} 

例如:

C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

应该变成

C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe

【问题讨论】:

  • @RobbyCornelissen 为什么不使用File.Separator 而不是常量符号?我想你应该看看这个stackoverflow.com/questions/27746419/…
  • 我认为你不想这样做。每个路径组件之间应该正好有一个反斜杠字符。 "\\" 只是单个反斜杠的编译时表示。当您在命令行窗口中键入命令(如 cd)时,您不会将反斜杠加倍。
  • @VikrantKashyap 我不需要看任何东西。问题是:如何用双反斜杠替换单反斜杠。我不需要对 OP 的运行环境或它们的应用程序的非功能性要求做任何进一步的假设。

标签: java


【解决方案1】:

你可以使用替换所以directory.replace("\\","\\\\");

【讨论】:

  • 谢谢。不敢相信我忘记了那个方法,但它奏效了。 :)
  • 没问题的人。每个人有时都会忘记
  • 那甚至无法编译。
  • 哎呀忘了转义字符我编辑我的答案
  • 最好使用File.separator 常量替换.. Cozz 如果您使用基于 linux 或 unix 的系统,这将无法正常工作.. stackoverflow.com/questions/27746419/…
【解决方案2】:
string str = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
StringBuilder sb = new StringBuilder(str);
sb.Replace('\\', '\\\');

这个全部替换!标记o我希望这对你有帮助。

编辑:

string str = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe";
str.Replace('\\', '\\\');

【讨论】:

  • 显然不会编译。这是一个 Java 问题。
  • 你使用哪种语言
  • 别管我用什么。该问题已标记为 java。您发布了一半正确的 C# 代码。
  • 这一半是怎么回事。
猜你喜欢
  • 1970-01-01
  • 2013-09-04
  • 2021-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
相关资源
最近更新 更多