当前位置: 首页 > 面试题库 >

在字符串中用\ n查找并替换所有NewLine或BreakLine字符-与平台无关

呼延俊良
2023-03-14
问题内容

我正在寻找一种合适且健壮的方法来查找和替换独立于任何OS平台的所有newlinebreaklinechar 。String``\n

这是我尝试过的,但效果并不理想。

public static String replaceNewLineChar(String str) {
    try {
        if (!str.isEmpty()) {
            return str.replaceAll("\n\r", "\\n")
                    .replaceAll("\n", "\\n")
                    .replaceAll(System.lineSeparator(), "\\n");
        }
        return str;
    } catch (Exception e) {
        // Log this exception
        return str;
    }
}

例:

输入字符串:

This is a String
and all newline chars 
should be replaced in this example.

预期的输出字符串

This is a String\nand all newline chars\nshould be replaced in this example.

但是,它返回了相同的输入String。像这样放置\
n并再次将其解释为换行符。请注意,如果您想知道为什么有人要\n在那里,这是用户的特殊要求,需要将String放在XML后缀中。


问题答案:

如果您想使用文字,\n则应执行以下操作:

String repl = str.replaceAll("(\\r|\\n|\\r\\n)+", "\\\\n")


 类似资料:
  • 这应该只得到数字和返回,但不做它作为预期的!有什么建议吗?

  • 问题内容: 如何替换字符串(字符串以上)中的所有字符,应该看起来像? 问题答案: 一种无需正则表达式的简单方法: https://play.golang.org/p/B3c9Ket9fp 您最初可能会想些什么: https://play.golang.org/p/nbNNFJApPp

  • 问题内容: 我有一个字符串,我想用一个星号替换任何不是标准字符或数字的字符,例如(az或0-9)。例如,“ h ^&ell`。,| ow] {+ orld”被替换为“ h * ell * o * w * orld”。请注意,多个字符(例如“ ^&”)将替换为一个星号。我将如何去做呢? 问题答案: 正则表达式可以解救! 例:

  • 问题内容: 我尝试使用此功能,但没有成功- 问题答案: 使用。 注意:删除了空格,因为通常不将其视为字母数字。

  • 问题内容: 我正在尝试查找“ |”的所有出现 在一个字符串中。 但我得到一个错误: 问题答案: 功能: 将返回的索引列表中的出现。

  • 问题内容: 我试图遍历一个字符数组,并将字符串中的该字符替换为另一个数组中的并行字符。 这是我得到的例子: 它总是输出相同的字符串,没有替换。 我也尝试使用: 和replaceAll方法。 有什么建议? 问题答案: 字符串在Java中是不可变的。不会 更改 您调用它的字符串-它会 返回 更改后的新字符串。所以你要: (对于要在其上“显示”更改的 所有 方法,这都是不变的,因此也是如此。)