我希望我的程序能够擦除它打印的所有文本。每次它打印一些东西时,我都会调用我的print()
方法而不是System.out.print()
,但是当我调用该erase()
方法时,它似乎在 Windows 7 控制台中没有做任何事情。我不知道发生了什么;我单独进行了一项测试,确认\b
确实会擦除字符,但无论出于何种原因,它都无法在erase()
. 退格字符是相互擦除还是什么?
编辑:我已经进行了更多测试。看起来 \b 不会覆盖换行符。所以我想我需要一种方法来做到这一点。
public static int textLength = 0;
public static void erase() {
for (int i = 0; i < textLength; i++) {
System.out.print('\b');
}
textLength = 0;
}
public static void print(String s) {
textLength += s.length();
System.out.print(s);
}