You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java Logger如何避免逐行打印数字位 实现完整数字单行输出

问题原因

logger.info()每调用一次就会输出一条独立日志,日志框架默认会在每条日志末尾自动追加换行符。你把失败提示、每一位数字拆成了多次logger.info()调用,自然会出现每条内容各占一行的问题,不可能自动拼接到同一行。

解决方法

核心思路:先把数字数组的每一位拼接成完整的数字字符串,再一次性调用logger输出整行内容,不要拆分多次日志调用。

方法1:兼容所有Java版本的StringBuilder拼接(适合初学者)

不需要依赖高版本特性,手动循环拼接数字后统一输出,同时用logger自带的参数占位符{}传参,比直接用+拼接字符串性能更好:

StringBuilder targetNum = new StringBuilder();
for (int digit : random) {
    targetNum.append(digit);
}
logger.info("{}, you lose. The number is : {}", player, targetNum);

如果你的random数组存的是字符类型,直接append即可,逻辑完全一致。

方法2:Java 8+ 简便写法

用Stream流可以一行完成数组拼接,不用手动写循环:

// 需提前导包:import java.util.Arrays; import java.util.stream.Collectors;
String targetNum = Arrays.stream(random)
        .mapToObj(String::valueOf)
        .collect(Collectors.joining());
logger.info("{}, you lose. The number is : {}", player, targetNum);

注意:不要试图通过修改日志配置去掉换行符实现多行拼接,会破坏全局所有日志的正常输出格式,完全没有必要。

内容的提问来源于stack exchange,提问作者ViktorsAlohins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 16:18:24