2010-06-20 102 views

Trả lời

20

first one ghi vào stdoutsecond one trả về đối tượng String.

Việc sử dụng nào phụ thuộc vào mục đích duy nhất. Nếu bạn muốn hiển thị chuỗi trong stdout (console), sau đó sử dụng chuỗi đầu tiên. Nếu bạn muốn có được một xử lý để chuỗi định dạng để sử dụng thêm trong mã, sau đó sử dụng thứ hai.

1

String.format chuỗi định dạng, không hiển thị chúng. Tôi nghĩ bạn có nghĩa là System.out.println(String.format("......", ....)) hoặc một số cấu trúc tương tự?

1

String.format trả về một chuỗi được định dạng. System.out.printf cũng in chuỗi được định dạng.

8

String.format trả về một Chuỗi mới, trong khi System.out.printf chỉ hiển thị Chuỗi được định dạng mới thành System.out, đôi khi được gọi là bảng điều khiển.

Hai đoạn mã có chức năng tương đương:

String formattedString = String.format("%d is my favorite number", 42); 
System.out.print(formattedString); 

System.out.printf("%d is my favorite number", 42); 
+6

Mặc dù bài đăng này thực sự cũ, tôi chỉ muốn thêm một điều vào câu trả lời của bạn: Hai đoạn mã không chính xác tương đương. System.out.printf không chèn một dòng mới. – thecoder16

+0

Tôi đã thử cả hai nhưng có vẻ như cả printf và định dạng đều không chèn dòng mới –

+0

@SKumar Đúng, nhưng 'thecoder16' đề cập đến việc sử dụng 'println' của Greg, khi in chuỗi, in chuỗi sau đó chấm dứt dòng bằng cách thêm một dấu tách dòng (về cơ bản là một dòng mới). Việc sử dụng 'printf' không, và phương thức' .format' cũng không. –

1

Hai phương pháp biểu hiện hành vi chính xác tương tự. Chúng ta có thể sử dụng định dạng (...) với String, Java.util.Formatter (J2SE 5) và cũng với PrintWriter.

Các vấn đề liên quan