【问题标题】:Replace a backlash in string with the word backslash (Java)用单词反斜杠替换字符串中的反斜杠(Java)
【发布时间】:2015-11-15 00:46:31
【问题描述】:

我有一个字符串“My \n bio”,当我打印这个字符串时,输出是:

My 
 bio

我想要完成的是这个输出:

My backslash bio

我已经阅读了很多关于 java 中的转义字符以及如何替换它们的问题,但我仍然无法正确理解。我想出了这些解决方案:

string.replace("\\", "backslash");
string.replaceAll("\\\\", "backslash");

但是当我打印字符串时,我得到与以前相同的输出。当我使用

string.replace("\n", "backslash")

我得到了想要的输出,但我希望它更通用。简而言之,我的问题是:如何用“反斜杠”一词替换字符串中的所有反斜杠。

【问题讨论】:

  • 您知道反斜杠字符在Java程序中具有特殊含义吗?
  • 是的,虽然它在字符串中显示为两个字符,但 '\n' 序列实际上代表一个字符:ASCII 10 / 0x0A。

标签: java string replace escaping character


【解决方案1】:

这里有一个相当快速和简单的方法来替换一些java的转义序列:

 static String replaceEscapes(String s) {
        return s.replaceAll("\n", "<linefeed>")
        .replaceAll("\r", "<carriage return")
        .replaceAll("\t", "<tab>")
        .replaceAll("\b", "<backslash>")
        .replaceAll("\f", "<formfeed>");
  }

【讨论】:

  • 好电话。完全不需要。我在想我可以做一些 C# 扩展方法并逐个字符地构建一个字符串,然后记得我不能在 Java 中做到这一点......然后再也没有把它拿出来。是的,杀死循环。
猜你喜欢
  • 1970-01-01
  • 2018-02-27
  • 2012-06-16
  • 2016-08-30
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-01
相关资源
最近更新 更多