【问题标题】:replace all occurences of "\x0d" in a Java String [duplicate]替换Java字符串中所有出现的“\ x0d”[重复]
【发布时间】:2011-09-27 00:27:33
【问题描述】:

可能重复:
How do I replace a character in a string in Java?

如何替换 Java 字符串中所有出现的 '\x0d'??

  • 我试过 myString.replaceAll("\x0d", "")... 不起作用

下面的所有答案都已经尝试过了

天哪:)


向那些垃圾人道歉。

【问题讨论】:

  • “\x0d”是指ASCII码为13的字符还是由'\'、'x'、'0'和'd'四个字符组成的字符串?
  • (老实说,你应该为自己没有去在线参考 String 并扫描它以寻找任何可能完成这项工作的函数而感到羞耻。这是任何第一周编程学生都应该做的基本内容了解如何做。)
  • 你不能:Java 字符串是不可变的。 :)
  • 你能展示你用于 replaceAll 的完整代码行吗?
  • @anonymous:你的问题问得不好。如果你提到你已经尝试过的东西,你会得到更好的答案。不要懒惰地提出一个好问题......

标签: java regex


【解决方案1】:

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

String str = "Testing\x0dHere";
System.out.println(str.replace('\x0d', ' '))

【讨论】:

  • 没错,'\x0d1' 不是有效的 Java 转义序列。但是用 \r (回车的转义符)替换它,它就可以了。与 \015 一样,八进制转义序列。 (Java 字符串没有十六进制转义序列——Unicode 序列 \Uxxxx 在解析之前导致替换,这在这种情况下有点破坏。)
  • 我知道它没有用,但考虑到这个问题的努力程度,我认为这是一个足够好的答案:)
【解决方案2】:

我相信你想要这个:

String test = "\r".replace("\r", "princess");
System.out.println(test);  // princess

ASCII 13 是回车

【讨论】:

    【解决方案3】:

    转义反斜杠:

    myString = myString.replace("\\x0d", "whateverYouWantToReplaceWith")
    

    ideone 上查看它。

    【讨论】:

      【解决方案4】:

      你可以考虑试试String.replace

      【讨论】:

        【解决方案5】:

        只是一个猜测——String.replace?有字符版本和“字符序列”版本。

        【讨论】:

          【解决方案6】:
          myString.replaceAll("\\x0d","whateverYouWantToReplaceWith");
          

          【讨论】:

          • 所以你和马克认为他打算替换字符“\x0D”?是的,在那种情况下,你的例子很好。
          • @Daniel R Hicks:我们的答案不一样。这使用了 replaceAll,它将 \\x0d 视为正则表达式,它表示代码为 13 的 ASCII 字符。ideone.com/7XRp3
          猜你喜欢
          • 1970-01-01
          • 2013-11-05
          • 2014-12-23
          • 1970-01-01
          • 2012-11-23
          • 2017-03-23
          • 1970-01-01
          • 2014-08-05
          • 2013-07-23
          相关资源
          最近更新 更多