首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java String.format 完整指南:格式化符號、標誌、日期時間與實戰示例

     編輯:Java 綜合教學

Java String.format 完整指南:格式化符號、標誌、日期時間與實戰示例

String.format() 是 Java 字符串格式化的核心工具,語法類似 C 的 sprintf()。本文系統整理通用類型轉換符、格式標誌、日期時間組合格式及精確控制符,附帶完整測試代碼與輸出結果。

方法簽名

// 使用默認 Locale
String format(String format, Object... args)

// 指定 Locale
String format(Locale locale, String format, Object... args)

通用類型轉換符速查表

轉換符說明示例輸出
%s字符串"mingrisoft"
%c字符'm'
%b布爾true
%d十進制整數99
%x十六進制整數FF
%o八進制整數77
%f浮點數99.99
%e指數格式9.38e+5
%g通用浮點(f/e較短者)42.5
%h散列碼41
%%百分號%
%n換行符(平台相關)
%tX日期時間組合(X 為子格式)見下表

格式標誌修飾符

標誌作用示例結果
+正負號("%+d", 15)+15
-左對齊("%-5d", 15)|15 |
0前導零("%04d", 99)0099
空格正數前加空格("% 4d", 99)| 99|
,千分位分組("%,f", 9999.99)9,999.990000
(負數括號("%(f", -99.99)(99.990000)
#替代格式("%#x", 99)0x63
<復用前一參數("%f和%<3.2f", 99.45)99.450000和99.45
$參數索引("%1$d,%2$s", 99,"abc")99,abc

日期時間組合格式(%tX)

轉換符說明示例
%tc完整日期時間星期一 九月 10 10:43:36 CST 2012
%tF年-月-日2012-09-10
%tD月/日/年09/10/12
%tr12小時制10:43:36 上午
%tT24小時制10:43:36
%tR時:分10:43

日期組件精確控制符

符號含義示例
%tb/%tB月份簡稱/全稱Sep / September
%ta/%tA星期簡稱/全稱Mon / Monday
%tC年份前兩位20
%ty年份後兩位12
%tj年間天數254
%tm兩位月份09
%td/%te兩位日期/不補零日期10 / 10

時間組件精確控制符

符號含義示例
%tH/%tI24/12小時制兩位小時15 / 03
%tk/%tl24/12小時制不補零小時15 / 3
%tM兩位分鐘03
%tS兩位秒09
%tL三位毫秒015
%tN九位納秒562000000
%tp上午/下午標記am / 上午
%tzRFC822 時區偏移+0800
%tZ時區縮寫CST
%tsUnix 時間戳(秒)1347246232
%tQUnix 時間戳(毫秒)1347246232773

實戰示例代碼

public static void main(String[] args) {
    Date date = new Date();
    // 綜合示例
    System.out.printf("現在時間:%tF %tT%n", date, date);
    System.out.printf("格式化價格:%,.2f 元%n", 1234567.89);
    System.out.printf("對齊顯示:|%-10s|%10d|%n", "Name", 100);
    System.out.printf("參數復用:%s %<s %<s%n", "Hello");
}

常見陷阱提醒

  • %f 默認保留 6 位小數,金額場景務必指定精度如 %.2f
  • 日期格式區分大小寫:%tY 是年份四位,%ty 是兩位
  • 中文環境下 %tp 輸出「上午/下午」,英文環境輸出「am/pm」
  • 線程安全:String.format 內部使用 Formatter 非線程安全,但方法級局部變量安全
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved