最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java字符串格式化工具String.format()完整用法指南

 更新時間:2026年01月13日 11:15:28   作者:碼靈  
String.format是Java中的一個靜態(tài)方法,用于創(chuàng)建格式化的字符串,這篇文章主要介紹了Java字符串格式化工具String.format()完整用法指南的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

前言

String.format()是 Java 中最核心的字符串格式化工具,能根據(jù)指定模板和參數(shù)生成標準化字符串,替代硬編碼拼接,提升代碼可讀性和跨平臺兼容性。以下是其完整、系統(tǒng)的用法講解。

一、基礎認知

核心作用

將普通文本與動態(tài)參數(shù)按指定格式拼接,返回格式化后的字符串(類似 C 語言printf,但不直接輸出,僅返回字符串)。

核心語法

提供兩個重載方法,日常開發(fā)中前者更常用:

// 1. 默認本地環(huán)境(Locale):適配當前系統(tǒng)的數(shù)字/日期格式
public static String format(String format, Object... args)

// 2. 指定本地環(huán)境:比如強制使用英文/中文區(qū)域的日期/數(shù)字格式
public static String format(Locale l, String format, Object... args)
  • format:格式模板,包含普通文本和以%開頭的格式說明符(占位符);
  • args:可變參數(shù),按順序匹配模板中的占位符(可通過參數(shù)索引復用 / 亂序)。

二、格式說明符的完整結構

格式說明符是String.format()的核心,決定參數(shù)的格式化規(guī)則,完整結構如下:

%[參數(shù)索引$][標志][寬度][.精度]轉(zhuǎn)換符

各部分含義(必選 / 可選標注):

組成部分是否必選說明
%格式說明符的起始標記。
參數(shù)索引 $指定使用第幾個參數(shù)(如%2$d表示第二個參數(shù)作為整數(shù)),可復用參數(shù)。
標志格式化修飾符(如左對齊、補零、千分位、顯示正負號)。
寬度指定輸出的最小字符數(shù)(不足時補空格 / 零,超出則按實際長度)。
. 精度浮點數(shù):指定小數(shù)位數(shù);字符串:指定截取長度;整數(shù) / 字符:無意義。
轉(zhuǎn)換符核心,指定參數(shù)的類型(如整數(shù)、字符串、日期、進制)。

三、全量常用轉(zhuǎn)換符

轉(zhuǎn)換符決定參數(shù)的解析類型,以下是覆蓋 99% 場景的全量常用轉(zhuǎn)換符(標注「補充」為之前額外新增的):

轉(zhuǎn)換符類型說明示例(參數(shù))輸出效果
d整數(shù)(十進制)常規(guī)整數(shù)格式化%d (123)123
s字符串任意對象都會調(diào)用toString()轉(zhuǎn)為字符串%s ("Java")Java
c字符單個字符,參數(shù)為charint(ASCII 碼)%c ('A')A
b布爾值null/ 非false則輸出true,否則false%b (true)true
f浮點數(shù)(小數(shù))默認保留 6 位小數(shù),可通過精度調(diào)整%f (3.1415)3.141500
e科學計數(shù)法浮點數(shù)轉(zhuǎn)為科學計數(shù)法格式%e (123.45)1.234500e+02
t/T日期時間配合子轉(zhuǎn)換符使用(如%tY= 年份),T表示結果大寫%tY (new Date())2025
%tF日期(ISO 標準)【補充】快捷格式,等價于%tY-%tm-%td,輸出yyyy-MM-dd%tF (new Date())2025-12-26
%tD日期(美式)【補充】快捷格式,等價于%tm/%td/%ty,輸出MM/dd/yy%tD (new Date())12/26/25
x/X十六進制整數(shù)【補充】%x小寫(a-f),%X大寫(A-F)%X (255)FF
o八進制整數(shù)【補充】十進制轉(zhuǎn)八進制%o (10)12
%%百分號本身【補充】轉(zhuǎn)義輸出%,直接寫%會報錯%% ()%
%n換行符【補充】跨平臺換行(Windows=\r\n,Linux=\n),替代硬編碼\n%n ()系統(tǒng)對應換行符

四、綜合實戰(zhàn)示例(覆蓋所有核心場景)

以下示例整合了基礎用法和補充格式符,可直接復制運行:

import java.util.Date;
import java.util.Locale;

public class StringFormatCompleteDemo {
    public static void main(String[] args) {
        Date now = new Date();
        
        // ========== 場景1:基礎類型格式化(字符串、整數(shù)、浮點數(shù)、布爾、字符) ==========
        String basic = String.format(
            "姓名:%s,年齡:%d,成績:%.2f,是否及格:%b,等級:%c",
            "張三", 25, 89.567, true, 'A'
        );
        System.out.println("基礎類型:" + basic);
        // 輸出:姓名:張三,年齡:25,成績:89.57,是否及格:true,等級:A

        // ========== 場景2:寬度/標志修飾(補零、左對齊、千分位、正負號) ==========
        String modifier = String.format(
            "編號:%05d,姓名:%-10s,金額:%,d 元,溫度:%+d℃",
            123, "李四", 1234567, -5
        );
        System.out.println("寬度/標志:" + modifier);
        // 輸出:編號:00123,姓名:李四        ,金額:1,234,567 元,溫度:-5℃

        // ========== 場景3:日期時間格式化(含快捷格式%tF/%tD) ==========
        String date = String.format(
            "ISO日期:%tF,美式日期:%tD,完整時間:%tF %tT%n",
            now, now, now, now
        );
        System.out.println("日期時間:" + date);
        // 輸出:ISO日期:2025-12-26,美式日期:12/26/25,完整時間:2025-12-26 15:30:45(示例)

        // ========== 場景4:進制轉(zhuǎn)換(十六進制%X、八進制%o) ==========
        String radix = String.format(
            "255的十六進制(大寫):%04X,10的八進制:%03o",
            255, 10
        );
        System.out.println("進制轉(zhuǎn)換:" + radix);
        // 輸出:255的十六進制(大寫):00FF,10的八進制:012

        // ========== 場景5:特殊符號(百分號%%、跨平臺換行%n) ==========
        String special = String.format(
            "成功率:%.1f%%%n第一行內(nèi)容%n第二行內(nèi)容",
            99.5
        );
        System.out.println("特殊符號:" + special);
        // 輸出:成功率:99.5%
        // 第一行內(nèi)容
        // 第二行內(nèi)容

        // ========== 場景6:參數(shù)索引(復用/亂序參數(shù)) ==========
        String index = String.format(
            "數(shù)字:%2$d,字符串:%1$s,再次使用數(shù)字:%2$d",
            "測試", 666
        );
        System.out.println("參數(shù)索引:" + index);
        // 輸出:數(shù)字:666,字符串:測試,再次使用數(shù)字:666
    }
}

五、注意事項

  1. 參數(shù)匹配:占位符數(shù)量需與參數(shù)數(shù)量匹配(參數(shù)索引復用除外),否則拋MissingFormatArgumentException;
  2. 類型匹配:轉(zhuǎn)換符需與參數(shù)類型匹配(如%d不能接收字符串),否則拋IllegalFormatConversionException
  3. 浮點數(shù)精度%.2f會自動四舍五入(如3.1453.15);
  4. 轉(zhuǎn)義規(guī)則:輸出%必須用%%,直接寫%會被識別為格式符起始標記導致報錯;
  5. 跨平臺兼容:優(yōu)先用%n替代\n,避免 Windows/Linux 換行符不一致問題;
  6. 日期參數(shù)%tF/%tD僅支持Date/Calendar/LocalDateTime等日期類型參數(shù)。

六、核心總結

  1. 核心結構:格式說明符的核心是%+轉(zhuǎn)換符(必選),參數(shù)索引、標志、寬度、精度為可選修飾,可靈活控制輸出樣式;
  2. 高頻轉(zhuǎn)換符
    • 基礎類型:%d(整數(shù))、%s(字符串)、%f(浮點數(shù));
    • 日期:%tF(ISO 標準日期)、%tT(完整時間);
    • 特殊場景:%X(十六進制)、%%(百分號)、%n(跨平臺換行);
  3. 最佳實踐:避免硬編碼拼接字符串,用String.format()實現(xiàn)標準化輸出;優(yōu)先用%tF/%tT簡化日期格式化,用%n保證跨平臺兼容性。

到此這篇關于Java字符串格式化工具String.format()完整用法的文章就介紹到這了,更多相關Java String.format ()用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java多線程中的ThreadPoolExecutor使用解析

    Java多線程中的ThreadPoolExecutor使用解析

    這篇文章主要介紹了Java多線程中的ThreadPoolExecutor使用解析,作為線程池的緩沖,當新增線程超過maximumPoolSize時,會將新增線程暫時存放到該隊列中,需要的朋友可以參考下
    2023-12-12
  • Java如何定義Long類型

    Java如何定義Long類型

    這篇文章主要介紹了Java如何定義Long類型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • JAVA設計模式之訪問者模式詳解

    JAVA設計模式之訪問者模式詳解

    這篇文章主要介紹了JAVA設計模式之訪問者模式詳解,訪問者模式是對象的行為模式,訪問者模式的目的是封裝一些施加于某種數(shù)據(jù)結構元素之上的操作,需要的朋友可以參考下
    2015-04-04
  • 在Java項目中實現(xiàn)日志輸出的技巧分享

    在Java項目中實現(xiàn)日志輸出的技巧分享

    日志是開發(fā)過程中不可或缺的一部分,它可以幫助我們追蹤代碼的執(zhí)行過程、排查問題以及監(jiān)控系統(tǒng)運行狀況,然而,大多數(shù)開發(fā)人員在編寫日志時往往只關注于輸出必要的信息,而忽略了日志的可讀性和美觀性,本文將介紹如何在Java項目中實現(xiàn)漂亮的日志輸出
    2023-10-10
  • java調(diào)用7zip解壓壓縮包的實例

    java調(diào)用7zip解壓壓縮包的實例

    下面小編就為大家?guī)硪黄猨ava調(diào)用7zip解壓壓縮包的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 聊聊Spring——AOP詳解(AOP概覽)

    聊聊Spring——AOP詳解(AOP概覽)

    這篇文章主要介紹了Spring——AOP詳解(AOP概覽),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • struts2中simple主題下<s:fieldError>標簽默認樣式的移除方法

    struts2中simple主題下<s:fieldError>標簽默認樣式的移除方法

    這篇文章主要給大家介紹了關于struts2中simple主題下<s:fieldError>標簽默認樣式的移除方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-10-10
  • Java NIO:淺析IO模型_動力節(jié)點Java學院整理

    Java NIO:淺析IO模型_動力節(jié)點Java學院整理

    在進入Java NIO編程之前,我們今天先來討論一些比較基礎的知識:I/O模型。對java io nio相關知識感興趣的朋友一起學習吧
    2017-05-05
  • 解決MyBatis-Plus使用動態(tài)表名selectPage不生效的問題

    解決MyBatis-Plus使用動態(tài)表名selectPage不生效的問題

    這篇文章主要介紹了如惡化解決MyBatis-Plus使用動態(tài)表名selectPage不生效的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • 徹底理解Spring注解@Autowired實現(xiàn)原理

    徹底理解Spring注解@Autowired實現(xiàn)原理

    這篇文章主要為大家詳細的介紹了Spring注解@Autowired實現(xiàn)的原理,縝密的邏輯分析,實踐應用示例操作說明,讓大家徹底的理解Spring注解@Autowired背后實現(xiàn)原理
    2022-03-03

最新評論

浦城县| 万州区| 信宜市| 修水县| 墨竹工卡县| 手机| 壤塘县| 达尔| 兴文县| 同江市| 龙岩市| 中牟县| 三穗县| 沧州市| 保定市| 连云港市| 桃江县| 大新县| 屏山县| 巫溪县| 金川县| 保靖县| 石首市| 乐至县| 稻城县| 社旗县| 临沭县| 花垣县| 临江市| 读书| 霍城县| 广宗县| 富民县| 含山县| 卓资县| 江口县| 延安市| 宁津县| 台南县| 柳州市| 望都县|