2011-09-11 23 views

Trả lời

5

Tôi thường sử dụng \r cùng với System.out.print khi in một số tỷ lệ phần trăm tiến trình.

Thử chạy này trong terminal của bạn:

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ếu tôi sử dụng \ n thay vì \ r, nó cho tôi kết quả tương tự, sự khác biệt giữa hai là gì? Tôi đoán \ r đã lỗi thời rồi. –

+1

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

10

thoát formfeed là \f, không \r. Trước đây là hữu ích cho việc xóa màn hình trong một giao diện điều khiển, trong khi thứ hai là hữu ích cho màn hình tiến độ (như đã nêu bởi aioobe).

\b có thể được sử dụng trong hiển thị tiến trình, ví dụ, trên ICMP Ping, bạn có thể hiển thị một dấu chấm khi ping được gửi và \b khi nhận được để cho biết số lượng mất gói.

1

Nguồn cấp dữ liệu biểu mẫu là ký tự điều khiển ASCII phá vỡ trang. Nó buộc máy in phải đẩy trang hiện tại ra và tiếp tục in ở đầu trang khác. Thông thường, nó cũng sẽ gây ra một vận chuyển trở lại. Để biết thêm chi tiết, hãy nhấp vào here

-1

Nguồn cấp dữ liệu mẫu là \f\r là vận chuyển trở lại. \f được sử dụng để in các ký tự sau dòng từ dòng mới bắt đầu ngay bên dưới ký tự trước đó.

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

Output:

This is before 
      Now new line 
OverlapORE 
13 
Các vấn đề liên quan