Java控制台输出部分内容自动换行问题排查求助
解决控制台输出中途自动换行的问题
嘿,我一眼就注意到问题大概率出在你的Point类的toString()方法里!
你在代码里直接把point[0]和point[1]拼接到输出字符串中,如果Point类的toString()方法返回的内容末尾带有换行符(\n),那每次打印point[0]的时候就会触发自动换行,导致后续的Given Point、Line等内容被挤到下一行,这就是你遇到“部分内容无理由换行”的核心原因。
错误的toString()示例(导致换行的根源)
如果你的Point类是这么实现toString()的,那肯定会出问题:
public class Point { private int x; private int y; // 其他属性和方法... @Override public String toString() { return x + "," + y + "\n"; // 这里的\n会强制触发换行! } }
正确的toString()实现
把多余的换行符去掉,改成这样:
@Override public String toString() { return x + "," + y; }
修改之后,你原来的System.out.print语句就会把所有内容连续输出在同一行,不会再出现中途换行的情况。
另外补充一点:如果你的Point类没有重写toString(),默认的Object.toString()不会包含换行符,所以这种情况可以排除——显然你是重写了这个方法才导致的问题。
内容的提问来源于stack exchange,提问作者B. Rain
相关产品推荐
相关产品推荐

