コンソールによって異なりますが、最も簡単な方法は、バックスペース文字を使用して、最近印刷された文字の前でカーソルを後方に移動することです。
int[] step = {100,200,300,400,500};
System.out.print("$> processed < ");
for (int i : step) {
System.out.print(i + " > records.\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
Thread.sleep(500);
}
これはWindowsのコマンドラインでは機能しますが、たとえばEclipseコンソールでは機能しません。
印刷された文字数をカウントするロジックを追加する必要があります。これらすべての「\b」文字をハードコーディングするのではなく、最近の出力に応じて正しい数を計算してください。
@Rezaが示唆しているように、「\r」の使用はさらに簡単です。
int[] step = {100,200,300,400,500};
for (int i : step) {
System.out.print("$> processed < " + i + " > records.\r");
Thread.sleep(500);
}
Eclipseコンソールではまだ機能しませんが(ただし、バックスペースアプローチよりも読みやすくなります)、すべてのバックスペース文字の処理を回避します。以前より短い行を印刷する場合は、末尾の文字をクリアするためにいくつかの追加スペースを印刷する必要がある場合があります。