"Tôi cũng muốn nói với bạn về phương thức String.format ."

"Đó là một phương thức tĩnh của lớp String , nhưng nó rất hữu ích. Hãy để tôi thực hiện một cách tiếp cận đường vòng."

"Nếu bạn cần hiển thị nhiều biến trên một dòng văn bản, bạn sẽ làm như thế nào?"

"Văn bản nào?"

"Cái này, ví dụ:"

Cho các biến sau:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
Đầu ra yêu cầu:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

"Tôi sẽ làm một cái gì đó như thế này:"

String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;

System.out.println("User = {name: " + name + ", age: " + age + " years, friend: " + friend + ", weight: " + weight + " kg.}");

"Không dễ đọc lắm phải không?"

"Tôi nghĩ là được."

"Nhưng nếu bạn có tên biến dài hoặc bạn cần gọi các phương thức để lấy dữ liệu, thì nó sẽ không dễ đọc lắm:"

System.out.println("User = {name: " + user.getName() + ", age: " + user.getAge() + " years, friend: " + user.getFriends().get(0) + ", weight: " + user.getExtraInformation().getWeight() + " kg.}");

"Chà, nếu đúng như vậy, thì, vâng, nó sẽ không dễ đọc cho lắm."

"Thực tế là điều này luôn xảy ra trong các chương trình thực tế, vì vậy tôi muốn chỉ cho bạn cách bạn có thể đơn giản hóa cuộc sống của mình bằng phương thức String.format."

"Mau nói cho ta biết, đây là cái gì thần thông?"

"Bạn có thể viết đoạn mã trên như thế này:"

String text = String.format("User = {name: %s, age: %d years, friend: %s, weight: %d kg.}",
user.getName(), user.getAge(), user.getFriends().get(0), user.getExtraInformation().getWeight())

System.out.println(text);

" Tham số đầu tiên của phương thức String.format là một chuỗi định dạng chứa các ký tự đặc biệt (%s, %d) bất cứ nơi nào chúng tôi muốn đặt giá trị."

"Sau chuỗi định dạng, chúng tôi chuyển các giá trị sẽ thay thế các ký tự %s và %d."

"Nếu chúng tôi cần chèn một chuỗi, thì chúng tôi viết %s; nếu chúng tôi cần một số, thì chúng tôi sử dụng %d."

"Sẽ dễ dàng hơn để xem điều này trong một ví dụ:"

Ví dụ
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
Kết quả:
s sẽ bằng «a = 1, b = 4, c = 3»

"Ừ, rất tiện lợi."

"Và bạn cũng có thể làm như thế này:"

Ví dụ
int a = -1, b = 4, c = 3;
String template;
 if (a < 0)
  template = "Warning! a = %d, b = %d, c = %d";
 else
  template = "a = %d, b = %d, c = %d";

System.out.println(String.format(template, a, b, c) );
Đầu ra:
Warning! a = -1, b = 4, c = 3

"Hmm. Đó là một phương pháp thực sự hữu ích. Cảm ơn, Ellie."

"Nếu bạn muốn sử dụng các loại dữ liệu khác với phương pháp định dạng, đây là bảng sẽ giúp:"

Biểu tượng Kiểu
%S Sợi dây
%d số nguyên: int, long, v.v.
%f số thực: float, double
%b boolean
%c than
%t Ngày
%% Ký hiệu phần trăm %

"Trên thực tế, các công cụ xác định định dạng này cũng có các cài đặt và cài đặt con của riêng chúng."

"Nhưng điều này là đủ để bạn bắt đầu. Nếu không, đây là liên kết đến tài liệu chính thức:"

Liên kết đến tài liệu bổ sung