在我的代码确认我已将它们全部删除后,为什么我的输出仍然显示新行?

How come my output still displays new lines after my code confirms that I removed them all?

我正在尝试从我的文本中删除所有新行或 returns,但是我在执行此操作时遇到了很多麻烦。即使在我确认新行已被删除后,它们仍然在输出中可见。我做错了什么?

这是我要解析的 html 文本: **longDescription":"CUT FROM CANADA AA OR USDA SELECT GRADES OR HIGHER 13.21/kg"*

String flyerHTML = sbFlyer.toString();
System.out.println(flyerHTML.contains("\n"));
flyerHTML = flyerHTML.replaceAll("\r\n|\r|\n", " ");
System.out.println(flyerHTML.contains("\n"));
System.out.println();    

while (flyerHTML.contains("\"longDescription\":")) {
    String longDescription = "";


    // LONG DESCRIPTION
    flyerHTML = flyerHTML.substring(flyerHTML.indexOf("\"longDescription\":") + 18);

    if (flyerHTML.startsWith("null")) longDescription = "null";

    else longDescription = StringEscapeUtils.unescapeHtml4(flyerHTML.substring(1, flyerHTML.indexOf(",") - 1));

    System.out.println("LONG DESCRIPTION = " + longDescription);

    System.out.println("");
}

为什么不在循环中添加替换?

while (flyerHTML.contains("\"longDescription\":")) {
    String longDescription = "";    

    // LONG DESCRIPTION
    flyerHTML = flyerHTML.substring(flyerHTML.indexOf("\"longDescription\":") + 18);

    if (flyerHTML.startsWith("null")) longDescription = "null";

    else longDescription = StringEscapeUtils.unescapeHtml4(flyerHTML.substring(1, flyerHTML.indexOf(",") - 1));
    longDescription = longDescription.replaceAll("\r\n|\r|\n", " ");
    System.out.println("LONG DESCRIPTION = " + longDescription);

    System.out.println("");
}

您的文本可能包含其他行终止符。根据 Pattern documentation 行终止符是一个或两个字符的序列,用于标记输入字符序列的一行结束。以下内容被识别为行终止符:

  • 换行(换行)字符('\n'),
  • 一个回车-return 字符后紧跟一个换行符 ("\r\n"),
  • 一个独立的回车-return字符('\r'),
  • 下一行字符('\u0085'),
  • 行分隔符 ('\u2028'),
  • 或段落分隔符 ('\u2029).