编辑:请注意,下面的代码是示例来显示我想要做什么。我真正的问题是,用Raphael Schweikert的话说,(如果可能的话)你可以检查以前打印的输出吗?换句话说,可以在占位符/*SOME TEST HERE*/
上进行哪些测试以确定System.out
的光标目前是否在新行的开始位置。有条件地终止当前行System.out.println
这可能是一个奇怪的问题。忍受着我。假设以下Java代码:
public void method1() {
method2();
System.out.println("line1");
method2();
System.out.print("line2");
method2();
}
public void method2() {
System.out.println("method2");
}
OUTPUT when method1 called:
method2
line1
method2
line2method2
请注意,line2和method2打印输出的最后一行出现在一行中。我想避免这种情况,但我也不希望在line1打印输出后出现多余的空行。所以,我希望重写方法2如下:
public void method2() {
if (/* SOME TEST HERE */) {
System.out.println();
}
System.out.println("method2");
}
OUTPUT when method1 called:
method2
line1
method2
line2
method2
是否有可以在这里完成,以实现这一目标的任何测试?
注意:请参阅顶部的编辑部分。
是关于你如何添加缺少的换行符对这种特殊情况下的问题或这是关于如何(如果可能的话),你可以检查之前打印的一般问题输出? –
第二个。这就是**所有**答案出错的地方。 – ADTC
也这么想!不幸的是,我很确定这是不可能的。就你的应用而言,发送的输出是很好的。它被控制台保留的事实是无关紧要的(可以找出一些本地API查询包含的控制台,但是必须特别针对所述控制台的实现 - 如果可能的话)。你最好的选择是使用自己的函数(或者自己的'PrintStream'实现),它会使用'System.out',但跟踪最后发送的字符。 –