“我還想告訴你有關String.format方法的信息。”

“它是String類的一個靜態方法,但是非常有用,讓我繞一圈。”

“如果你需要在一行文本中顯示多個變量,你會怎麼做?”

“什麼文字?”

“這個,例如:”

給定以下變量:
String name = "Bender";
int age = 12;
String friend = "Fry";
int weight = 200;
所需的輸出:
User = {name: Bender, age: 12 years, friend: Fry, weight: 200 kg.}

“我會這樣做:”

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.}");

“不太可讀,是嗎?”

“我覺得還行。”

“但是如果你有很長的變量名或者你需要調用方法來獲取數據,那麼它就不會很可讀:”

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

“好吧,如果是那樣的話,那麼,是的,它的可讀性就不會很好。”

“事實上,這種情況在實際程序中經常發生,因此我想向您展示如何使用 String.format 方法簡化您的生活。”

“請快告訴我,這是什麼神功?”

“你可以這樣寫上面的代碼:”

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);

String.format方法的第一個參數是一個格式字符串,它包含特殊字符(%s、%d),無論我們想在何處放置值。”

“在格式字符串之後,我們傳遞將替換 %s 和 %d 字符的值。”

“如果我們需要插入一個字符串,那麼我們寫 %s;如果我們需要一個數字,那麼我們使用 %d。”

“在示例中會更容易看到這一點:”

例子
String s = String.format("a = %d, b = %d, c = %d", 1, 4, 3);
結果:
s 將等於 «a = 1, b = 4, c = 3»

“嗯,很方便。”

“你也可以這樣做:”

例子
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) );
輸出:
Warning! a = -1, b = 4, c = 3

“嗯。這真是一個有用的方法。謝謝,艾莉。”

“如果你想在格式化方法中使用其他數據類型,這裡有一個表格可以幫助你:”

象徵 類型
%s 細繩
%d 整數:int、long 等。
%F 實數:float, double
%b 布爾值
%C 字符
%t 日期
%% 百分號 %

“實際上,這些格式說明符也有自己的設置和子集。”

“但這足以讓你開始。如果沒有,這裡是官方文檔的鏈接:”

鏈接到其他材料