【问题标题】:Change a "\" to a "/"将“\”更改为“/”
【发布时间】:2012-01-16 09:25:34
【问题描述】:

我正在寻找一段简单的代码,它将使用 java 将字符串中的所有反斜杠更改为正斜杠。

我试过这个: word.replaceAll("\","/");

但它不会工作。有谁可以快速解决这个问题?

谢谢

附: 我也刚刚注意到我的字符串操作几乎都没有工作。我尝试了 toUpperCase() 之类的东西,但字符串没有发生任何事情?!?

【问题讨论】:

  • String 类是不可变的,所以它永远不会改变。它总是返回一个包含所做更改的新副本。

标签: java string backslash slash replaceall


【解决方案1】:

这些函数将返回一个新字符串,其中包含您尝试实施的更改,而不是更改字符串本身。在\ 的情况下,您可能需要使用转义斜杠(\\

【讨论】:

  • 对不起,这就是我在原始问题中输入的意思,所以我使用的函数是:word.replaceAll("\\","/");
【解决方案2】:

在这种情况下,您需要使用:

word.replaceAll(("\\", "/");

toUpperCase()返回一个字符串,它不会改变调用方法的字符串。

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html

【讨论】:

  • 哦!我相信这是我的问题。我需要做 word = word.replaceAll("\\","/") 谢谢!
【解决方案3】:

replaceAll() 是在这种情况下使用的错误方法,因为它使用regular expressions 进行匹配。

您想要替换文字的更简单的replace() 方法。试试这个:

word = word.replace("\\","/");

注意事项:

  1. 您必须使用另一个反斜杠来转义反斜杠,即"\\" 是您编写单个反斜杠字符串的方式
  2. 字符串是immutable - 字符串方法返回一个 new 字符串,结果...它们不会更改字符串。这就是为什么你需要像 myString = myString.someMethod(); 这样编码

【讨论】:

  • @user1088796 如果它解决了您的问题,您应该接受答案。
【解决方案4】:

字符串是不可变的
他们永远不会改变。

你需要写word = word.something()

【讨论】:

    【解决方案5】:

    你需要做的就是 word = word.replaceAll("\", "/");

    你必须知道一个字符串是不能改变的。

    这些方法通过迭代字符串的字符并用正斜杠替换所有反斜杠来工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-13
      • 2019-10-19
      • 2010-12-30
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-02
      相关资源
      最近更新 更多