在下面的代码中,我有一个ByteArrayOutputStream,我正试图遍历它,目标是尝试用“&”字符本身替换HTML等效的&。我要纠正的问题是HTML值正在日志中打印,我需要使用“&”进行纠正。下面是我尝试在日志中打印此代码的地方,这是我尝试过的代码,但无法正常工作。

任何帮助,将不胜感激。谢谢。

final ByteArrayOutputStream baos = new ByteArrayOutputStream();
final PrintStream pStream = new PrintStream(baos);
receivedIsoMessage.dumpMsg(pStream, "Message received:");
for (final String logString : baos.toString().split("\n")) {
    if (baos.toString().contains("&")) {
        logString.replace("&", "&");
    }
    LOGGER.info(logString.replaceAll("(\\r|\\n)", ""));
}

最佳答案

ByteArrayOutputStream baos = new ByteArrayOutputStream();

final PrintStream pStream = new PrintStream(baos);
receivedIsoMessage.dumpMsg(pStream, "Message received:");
for (String logString : baos.toString().split("\n")) {
    if (logString.contains("&")) { // or just remove the if statement like Sam mentioned
        logString = logString.replace("&", "&");
    }
    LOGGER.info(logString.replaceAll("(\\r|\\n)", ""));
}



您忘记将replace方法的结果分配给logString
由于您将其声明为最终的,所以这是不可能的

07-27 16:38