0

プログラムが印刷されたすべてのテキストを消去できるようにしたい。何かを出力するたびに、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);
}
4

1 に答える 1

4
Runtime.getRuntime().exec("cls");

編集:これはあなたが探している解決策ではないようです。使用する場合

System.out.print('\b');

これにより、すでに印刷されたものが消去されないことに注意する必要があります。代わりに、各バックスペースはカーソルを1文字戻します。次に、そこにあるものを実際に消去するには、他のテキストで上書きする必要があります。

于 2012-05-21T15:25:28.640 に答える