String系列之format方法

先簡單介紹一下業務場景:公司新版本評審結束,需要按照一定規則拼接字符串(例如:20191215A001,...20191215A005);看着此需求,大家都想到了循環累加,但是後面如何拼接01,02這種字符而不是1,2...呢??答案肯定是數據格式化,於是乎注意力就集中在String類的格式化方法上了,所以下面正式進入本篇文章的主題。

針對上面的需求先簡單解答:

String formatStr = String.format("%03d", 1);//輸出結果:001

format()方法在java1.5版本開始新增,主要用於格式化字符串

下面對format()方法做主要介紹:

1、參數佔位符

轉換符 說明 實例
%s 字符串類型 "xiyuan"
%c 字符類型 'x'
%b 布爾類型 true
%d 整數類型(十進制) 99
%x 整數類型(十六進制) FF
%n 換行符
%% 百分號本身 %

 

 

 

 

 

 

 

 

 

 

代碼示例:

public static void main(String[] args) {
String str=null;
str=String.format("Hi,%s", "溪源"); 
System.out.println(str); //Hi,溪源 str=String.format("Hi,%s:%s.%s", "溪源1","溪源2","溪源3"); System.out.println(str); //Hi, 溪源1:溪源2.溪源3 System.out.printf("字母a的大寫是:%c %n", 'A');//字母a的大寫是:A System.out.printf("3>7的結果是:%b %n", 3>7);//3>7的結果是:false System.out.printf("100的一半是:%d %n", 100/2);//100的一半是:50 System.out.printf("100的16進制數是:%x %n", 100);//100的16進制數是:64 }

 2、劃重點啦~:字符串與整數之間格式化

// 補齊空格並右對齊:
String.format("%10s, world", "Hello");     // 輸出 "     Hello, world"
String.format("%8d", 123);                 // 輸出 "     123"

// 補齊空格並左對齊:
String.format("%-10s, world", "Hello");    // 輸出 "Hello     , world"
String.format("%-8d", 123);                // 輸出 "123     "

// 補齊 0 並對齊(僅對數字有效)
String.format("%08d", 123);                // 輸出 "00000123"
String.format("%-08d", 123);               // 錯誤!不允許在右邊補齊 0

// 輸出最多N個字符
String.format("%.5s", "Hello, world");       // 輸出 "Hello"
String.format("%.5s...", "Hello, world");    // 輸出 "Hello..."
String.format("%10.5s...", "Hello, world");  // 輸出 "     Hello..."

// 輸出逗號分隔數字
String.format("%,d", 1234567);               // 輸出 "1,234,567"

  3、日期格式化:

我們平時工作中最常使用的就是字符和日期之間的轉化;

Y=年;m=月;d=日;H=時;M=分;S=秒;L=毫秒;A=星期幾(名稱);B=月份名稱;

具體代碼就不展示啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章