日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

澄清字符串的格式!

發布時間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 澄清字符串的格式! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用戶友好的介紹

如果您不熟悉String格式或只想快速解決問題,那么String格式的Java文檔不是最容易閱讀和理解的。 盡管它很完整,但它不是非常用戶友好的,所以我想我會嘗試編寫一個更清晰的版本。 這篇文章不僅對您有幫助,而且對我本人來說也很重要。

格式化方法

有兩種提供String格式化行為的方法: format()printf()format()方法是String.class的靜態方法,而printf()方法是靜態System.out.class的方法。 它們的行為完全相同,并且具有相同的簽名。

format("format string", argument(s)); printf("format string", argument(s));

“格式字符串”用于格式化參數列表中的值。

它既可以包含不與任何參數關聯的String文字信息,也可以包含特定于參數的格式數據。 格式化數據將始終以百分號( )開頭,后跟格式化語義。

讓我們看一些例子。

替換字符串中的占位符

讓我們從最簡單的示例開始。 在占位符下方的代碼段中, %s被替換為名稱Alex

String.format("Hello %s", "Alex"); // Hello Alex

format()方法返回一個字符串,其中包含消息Hello Alex

多占位符

一次可以替換多個占位符。 在下面的示例中,格式化的String由String和浮點基元組成。

String.format("The %s costs $%f", "Bag", 12.99f); // The Bag costs $12.990000

請注意,該數字如何不格式化為貨幣的十進制數字。 接下來讓我們看看數字格式。

如何格式化數字

要將數字格式化為給定的小數位數,請指定占位符后的位數,如以下代碼段所示。

String.format("The %s costs $%.2f", "Bag", 12.99f); // The Bag costs $12.99

添加數字分隔符

要添加數字分隔符,請在%占位符后添加逗號。

String.format("The %s costs $%,.2f", "Car", 54999.99f); // The Car costs $54,999.99

逗號是特定于語言環境的,因此在使用該字符對數字進行分組的區域中將使用點(。)分隔符。

讓我們快速查看其他數字格式設置選項。

將負數括在括號中

使用字符表示負數應放在括號內。

String.format("Absolute zero is %(.2f degrees Celsius", -273.15f); // Absolute zero is (273.15) degrees Celsius

包含正號或負號

使用+字符可包含正號或負號。

String.format("Temperature of the Sun %,+d K", 5778); // Temperature of the Sun +5,778 KString.format("Temperature of Jupiter %,+d Celsius", -145); // Temperature of Jupiter -145 Celsius

用零填充數字

用0標志和指定寬度來填充零。 在下面的代碼中,寬度為10。

String.format("A padded number %010d", 42); // A padded number 0000000042

請注意,零的數量不是10,而是數字的寬度是10,數字后的剩余空間用零填充以使數字10位數長。

左對齊數字

該數字可以左對齊,并具有給定的寬度。

String.format("A left-justified number <%-10d>", 42); // A left-justified number <42 >

請注意,左邊的空格數不是10,而是數字的寬度是10,數字后的剩余空間用空格字符填充,以使數字字符變長。

八進制和十六進制數

有兩個用于顯示八進制和十六進制數字的格式設置選項:前導0或0x或不包含任何前導字符。

String.format("An octal number %o", 100); // An octal number 144 String.format("An octal number %#o", 100); // An octal number 0144String.format("An hex number %x", 100); // An hex number 64 String.format("An hex number %#X", 100); // An hex number 0X64

注意最后一個示例中的大寫X。 X的大小寫決定了輸出編號中X的大小寫,即小寫的x導致輸出編號中的小寫X。

編號標志匯總

為了總結到目前為止所討論的內容,我準備了一張匯總這些標志的表格。 這不是一個詳盡的列表,因為您必須查閱Java文檔 。

描述 筆記
左對齊這個說法。 不能與打擊墊“ 0”一起使用。 還必須指定寬度。
+ 在此參數中包含一個符號(+或–) 僅帶數字。 d或f。
0 用零填充該參數。 僅帶數字。 還必須指定寬度。 d或f。
使用特定于語言環境的分組分隔符(即123,456中的逗號) 僅帶數字。 d或f。
將負數括在括號中 僅帶數字。 d或f。

常規,字符和數字類型的格式說明符具有以下語法:

格式字符串: %[arg_index $] [flags] [width] [。precision]轉換字符

方括號[]中的值是可選的,格式字符串唯一需要的元素是百分比字符%和轉換字符。

轉換字符

為了匯總我所討論的轉換字符,我構建了一個匯總表。 這不是一個詳盡的列表,因為您必須查閱Java文檔 。

轉換字符 類型 筆記
d 積分 小數整數
? 積分 八進制整數
x,X 積分 十六進制整數
e,E 浮點 科學計數法中的小數
F 浮點 小數
約會時間 日期和時間轉換字符的前綴
百分 文字百分比

如何格式化字符串

字符串的格式與數字的格式幾乎相同,并且將使用許多相同的標志。 讓我們開始看一個用幾個參數格式化的字符串。

多個參數

格式化的字符串可以包含多個不同類型的參數。 以下示例有兩個參數:一個是字符串,另一個是整數。

String.format("The %1s has %2d moons", "Saturn", 53); // The Saturn has 53 moons

注意參數的格式。 該數字表示字符串后面的參數順序。 例如,%1s引用第一個參數,%2d引用第二個參數。

格式化字符串

字符串可以采用與數字相同的格式。 讓我們看一些簡單的例子:

指定寬度

String.format("Fun with <%10s>", "Java"); // Fun with < Java>

指定寬度的左對齊

output = String.format("Fun with <%-10s>", "Java"); // Fun with <Java >

截斷最大字符數

output = String.format("Fun with <%.1s>", "Java"); // Fun with <J>

最后的話

這是一些結合了標志,寬度,精度和轉換字符的復合示例。

System. out.printf( "%2$(+,8d, %1$(+,8d", 1234, -5678); // (5.678), ? +1.234
  • 在負數附近顯示花括號
  • +顯示+表示正數
  • 使用本地號碼格式
  • 8最小寬度8
  • d
System. out.printf( "%2$0+,8d, %1$0+,8d", 1234, -5678); // -005.678, +001.234
  • 0用0填充空間
System. out.printf( "%2$-+,8d, %1$-+,8d", 1234 ,-5678); // -5.678, +1.234
  • 左對齊
System. out.printf( "%1$+,8.4f", 12234.678878); // +12.234,6789
  • +顯示+表示正數
  • 使用本地號碼格式
  • 8最小寬度8
  • .4點后的位數,四舍五入
  • f浮動

結論

字符串格式化是一個復雜的主題,為確保您了解所有詳細信息,請參閱Java文檔 。

代碼源

本文的代碼源位于我的GitHub存儲庫中 。

進一步閱讀

我通常會發布有關Java EE的帖子。 ? 以下是您可能感興趣的主題的簡短列表:

  • Java EE:過去,現在和未來
  • 上下文和依賴注入 (CDI)
  • 企業Java Bean (EJB)
  • 什么是JAX-RS批注?
  • @Context注釋用于什么?

學到更多

如果您想提高Java EE技能,請嘗試我的Lynda.com視頻培訓課程。 它們涵蓋了多種Java EE技術:

  • 使用JAX-RS 2.0的RESTful服務
  • 使用Java EE進行WebSocket編程
  • 使用Java EEJSON處理
  • 學習Java企業版

翻譯自: https://www.javacodegeeks.com/2017/09/format-string-clarified.html

總結

以上是生活随笔為你收集整理的澄清字符串的格式!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。