一、基本概念
Java中常用的字元串格式化方法是string.format方法。這個方法允許開發者將不同類型的數據格式化為一個字元串。string.format實際上是調用了一個叫做Formatter的類,對於格式化字元串的操作全部委託給Formatter來做。在Formatter類中使用格式化字元串語法指定佔位符,然後將要輸出的數據作為參數傳遞到format方法中。
佔位符語法為:%[argument_index$][flags][width][.precision]conversion,在這裡,%是必須的開頭。同時,佔位符包含5個部分:
- argument_index:表示在當前佔位符所在參數列表中的位置,從1開始計數,可省略。
- flags:標記字元,用來控制輸出的格式。
- width:用來指定輸出的最小寬度。
- precision:用來指定精度,與類型相關。如果省略,則將其設置為6。
- conversion:用來指定輸出的類型,包括十六進位、八進位、科學計數法等等。
二、使用示例
string.format可以用於很多不同的類型,包括整數、浮點數、日期、時間等。下面是一些常見的示例:
1、整數類型
int num = 123; System.out.println(String.format("%d", num));//輸出:123 System.out.println(String.format("%4d", num));//輸出: 123(寬度為4,右對齊) System.out.println(String.format("%04d", num));//輸出:0123(寬度為4,左補0) System.out.println(String.format("%+-4d", num));//輸出:+123(寬度為4,左對齊,帶正號) System.out.println(String.format("%,d", num));//輸出:123(千位分隔符)
2、浮點數類型
double pi = 3.1415926; System.out.println(String.format("%f", pi));//輸出:3.141593 System.out.println(String.format("%.2f", pi));//輸出:3.14(保留2位小數) System.out.println(String.format("%8.2f", pi));//輸出: 3.14(寬度為8,右對齊) System.out.println(String.format("%+8.2f", pi));//輸出: +3.14(寬度為8,右對齊,帶正號) System.out.println(String.format("%08.2f", pi));//輸出:0003.14(寬度為8,左補0)
3、日期和時間
Date now = new Date(); System.out.println(String.format("%tc", now));//輸出:星期一 八月 16 20:09:36 CST 2021 System.out.println(String.format("%tr", now));//輸出:08:09:36 下午 System.out.println(String.format("%tY-%tm-%td", now, now, now));//輸出:2021-08-16 System.out.println(String.format("%tH:%tM:%tS", now, now, now));//輸出:20:14:04
三、高級特性
在Formatter中還有一些高級功能,例如格式化輸出集合類型、輸出顏色等等。
1、格式化輸出集合類型
Formatter提供了一些特殊的佔位符來完成集合類型的格式化輸出。下面是一些示例:
List list = Arrays.asList("apple", "banana", "cherry"); System.out.println(String.format("%s", list));//輸出:[apple, banana, cherry] System.out.println(String.format("%#s", list));//輸出:[apple,banana,cherry](去掉逗號、空格、加上#號) System.out.println(String.format("%-15s", list));//輸出:[apple, banana, cherry](左對齊,寬度為15)
2、輸出顏色
Formatter支持將輸出的文本設置為不同的顏色,實現方法是在佔位符中使用%[argument_index$]格式,並在flags中添加ANSI控制台顏色代碼(Linux和Mac上有效)。下面是一些示例:
System.out.println(String.format("\033[31m%s\033[0m", "Hello, world!"));//輸出紅色文本 System.out.println(String.format("\033[46;37m%s\033[0m", "Hello, world!"));//輸出藍色背景+白色文本
四、總結
Java中的string.format方法是一個非常強大的字元串格式化工具,通過使用佔位符來指定要格式化的類型、寬度、精度等等。在實際開發中,我們可以使用string.format方法來輸出各種類型的數據,包括整數、浮點數、日期、時間、集合等等。同時,通過使用高級特性,我們可以將輸出的文本進行格式化,並設置不同的顏色。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/197023.html