2011-09-11 41 views

回答

5

當打印一些進度百分比時,我通常使用\rSystem.out.print

嘗試在你的終端運行以下命令:

class Test { 
    public static void main(String[] args) throws InterruptedException { 
     for (int i = 0; i < 100; i++) { 
      System.out.print("Progress: " + i + " %\r"); 
      Thread.sleep(100); 
     } 
    } 
} 
+1

如果我使用\ n而不是\ r,它給了我相同的結果,兩者之間有什麼區別?我想\ r現在已經過時了。 –

+1

請參見[this q/a](http://stackoverflow.com/questions/1761051/difference-between-n-and-r)。 – aioobe

10

換頁逃避\f,不\r。前者對清除控制檯中的屏幕非常有用,而第二種則對進度顯示非常有用(如aioobe所述)。

\b也可用於正在進行的顯示,例如,在ICMP Ping上,您可以在發送ping時顯示一個點,並在收到時顯示一個點以指示丟包量。

1

換頁是一個分頁的ASCII控制字符。它強制打印機彈出當前頁面並繼續在另一頁面的頂部打印。通常,它也會導致回車。欲瞭解更多詳情,請點擊here

-1

換頁是\f\r是回車。 \f用於打印新字符後面的字符。

System.out.println("This is before\fNow new line"); 
System.out.println("TEXTBEFORE\rOverlap"); 
System.out.println("12\b3"); 

輸出:

This is before 
      Now new line 
OverlapORE 
13 
相關問題