當我們需要將特定類型的變數加入某個字元串中時,常使用字元串拼接。這種方式簡單易用,但當拼接的字元串較為複雜時,就會顯得麻煩且容易出錯。Java String.format 是一種更加靈活的字元串拼接方式,本文將以 String.format 為重點進行詳細闡述。
一、字元串模板
String.format 中的第一個參數為字元串模板(String format),模板中使用 % 符號來表示需要加入變數的位置與類型。
下面是一個例子:(格式為「% [argument_index] [flags] [width] [.precision] conversion」)
String.format("My name is %s, I am %d years old.", "Andy", 18);
該段代碼將輸出:My name is Andy, I am 18 years old. 在模板中,%s 表示字元串類型,%d 表示整型。其中,變數的值按順序依次填入模板中,會自動轉換為對應的類型。
下面是一些常用的類型轉換:
轉換符 | 對應 Java 類型 |
---|---|
%s | String |
%d | 整型 |
%f | 浮點型 |
%t | 日期時間類型 |
%c | 字元類型 |
%b | 布爾類型 |
%% | % 自身 |
二、格式化參數
在模板中,% 符號後還可以加上格式化參數,用來設置輸出的寬度、精度等信息。下面列舉幾個常見的格式化參數:
- argument_index:用於指定變數在參數列表中的索引位置。例如,String.format(“%2$s 和 %1$s”, “Java”, “Python”) 將輸出 “Python 和 Java”。
- flags:用於控制輸出的格式,默認左對齊。例如,String.format(“%-10s %5s”, “Java”, “Python”) 將輸出 “Java Python”,其中 %10s 將輸出一個長度為 10 的字元串,%5s 將輸出長度為 5 的字元串。
- width:用於控制輸出的寬度。
- precision:用於控制精度。
- conversion:用於指定輸出類型。
三、實例
下面是一些使用 String.format 的具體實例:
1. 輸出日期和時間
String.format("現在的時間是:%tF %tT", new Date(), new Date());
輸出格式為:2019-11-11 16:05:35
2. 輸出整數
String.format("一共%d個蘋果,每個蘋果價值%.2f元", 3, 1.23);
輸出格式為:一共3個蘋果,每個蘋果價值1.23元
3. 輸出布爾類型
String.format("x == y :%b , x != y : %b", x == y, x != y);
如果 x 等於 y,則輸出:x == y :true , x != y : false
如果 x 不等於 y,則輸出:x == y :false , x != y : true
4. 常用佔位符
String.format("10 的三進位是 %1$s,10 的八進位是 %2$#o,10 的十六進位是 %3$#x",
Integer.toString(10, 3), 10, 10);
輸出格式為:10 的三進位是 101,10 的八進位是 0o12,10 的十六進位是 0xa
四、結語
Java String.format 是一個靈活易用的字元串拼接方式,能夠針對不同的需求進行格式化處理。本文介紹了 String.format 的基本用法並給出了幾個實例。希望讀者在實際開發中能夠更好地使用 String.format,提高代碼的可讀性和可維護性。
原創文章,作者:VOOH,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/139291.html