Java String.format詳解

當我們需要將特定類型的變數加入某個字元串中時,常使用字元串拼接。這種方式簡單易用,但當拼接的字元串較為複雜時,就會顯得麻煩且容易出錯。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 類型
%sString
%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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
VOOH的頭像VOOH
上一篇 2024-10-04 00:22
下一篇 2024-10-04 00:22

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論