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

如何在Java中使用System.out.println?求助解决Scanner输出格式问题

解决Java中System.out实现单行输出的问题

嘿,我来帮你搞定这个问题!首先你要知道,System.out.println()这个方法的特性就是输出内容后自动换行,所以你现在两次调用它,自然会把两个字符分成两行显示。要实现单行输出,有几种简单直接的方案:

方案一:用System.out.print()替代println()

print()方法只会输出你指定的内容,不会自动添加换行符。把你代码里的两行输出代码改成这样就行:

System.out.print(c1);
System.out.print(c2);

如果需要在输出完这两个字符后再换行,只需要在最后加一行System.out.println();就可以了。

方案二:拼接字符为字符串后一次性输出

你可以把两个字符拼接成一个完整的字符串,再用println()一次性输出,这样只会在整个字符串结束后换一次行:

System.out.println(c1 + "" + c2);

这里c1 + ""的作用是把字符类型转换成字符串,之后再和c2拼接成完整的字符串,最后输出就能得到你想要的单行结果。

另外顺便提一句,你代码里用findWithinHorizon(".", 0)读取字符的方式不算最直观,而且可能会出现一些预期外的行为(比如你说输入tf却输出t和r,大概率是输入时的手误,但这个方法本身更适合正则匹配的场景)。如果只是想读取输入里的两个连续字符,更简单可靠的方式是先读取整个输入字符串,再取对应位置的字符:

Scanner s = new Scanner(System.in);
String input = s.next();
char c1 = input.charAt(0);
char c2 = input.charAt(1);
// 这里执行输出操作
s.close();

这样代码逻辑更清晰,也不容易出问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:33:13