在下面的代码中,我有一个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
由于您将其声明为最终的,所以这是不可能的