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

解析Java格式字符串的使用

 更新時(shí)間:2022年02月02日 08:36:56   作者:蘇西月  
本文通過實(shí)例給大家介紹了java格式字符串的使用,代碼簡單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

Class Formatter

該類提供了對(duì)布局調(diào)整和對(duì)齊的支持,對(duì)數(shù)字、字符串和日期/時(shí)間數(shù)據(jù)的常用格式,以及本地特定的輸出。支持常見的Java類型,如byte、BigDecimal和Calendar。通過Formattable接口為任意的用戶類型提供有限的格式化定制。
格式化器對(duì)于多線程訪問不一定安全。線程安全是可選的。

舉例說明:

StringBuilder sb = new StringBuilder();
   // Send all output to the Appendable object sb
   Formatter formatter = new Formatter(sb, Locale.US);
   // 顯示參數(shù)索引可用于重新排序輸出。
   formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")
   // -> " d  c  b  a"
   // 可選作為第一個(gè)參數(shù)的語言環(huán)境可用于獲取特定于語言環(huán)境的數(shù)字格式??梢越o出精度和寬度,以便對(duì)數(shù)值進(jìn)行舍入與對(duì)齊。
   formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E);
   // -> "e =    +2,7183"
   // '(' 數(shù)字標(biāo)志可用于用小括號(hào)而不是減號(hào)來格式化負(fù)數(shù)。 組別分隔符會(huì)自動(dòng)插入。
   formatter.format("Amount gained or lost since last statement: $ %(,.2f",
                    balanceDelta);
   // -> "Amount gained or lost since last statement: $ (6,217.58)"

如以下調(diào)用所示,存在用于常見格式化請(qǐng)求的便捷方法:

 // 寫一個(gè)格式化的字符串到 System.out.
   System.out.format("Local time: %tT", Calendar.getInstance());
   // -> "Local time: 13:34:18"

   // 將格式化的輸出寫到 System.err.
   System.err.printf("Unable to open file '%1$s': %2$s",
                     fileName, exception.getMessage());
   // -> "Unable to open file 'food': No such file or directory"

像 C語言的sprintf(3),字符串可以使用靜態(tài)方法格式化String.format

 // 格式化一個(gè)包含日期的字符串
   import java.util.Calendar;
   import java.util.GregorianCalendar;
   import static java.util.Calendar.*;

   Calendar c = new GregorianCalendar(1995, MAY, 23);
   String s = String.format("Duke's Birthday: %1$tb %1$te, %1$tY", c);
   // -> s == "Duke's Birthday: May 23, 1995"

*每個(gè)產(chǎn)生格式化輸出的方法都需要一個(gè)格式字符串和一個(gè)參數(shù)列表。

格式字符串是一個(gè)String可能包含固定文本和一個(gè)或多個(gè)嵌入格式說明符的字符串。

https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Formatter.html#syntax

Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);

此格式字符串是該format方法的第一個(gè)參數(shù)。它包含三個(gè)格式說明符“%1$tm”、“%1$te”和“%1$tY”,它們指示應(yīng)如何處理參數(shù)以及應(yīng)在文本中插入的位置。格式字符串的其余部分是固定文本"Dukes Birthday: ",包括任何其他空格或標(biāo)點(diǎn)符號(hào)。參數(shù)列表包含在格式字符串之后傳遞給方法的所有參數(shù)。

通用、字符和數(shù)字類型的格式說明符具有以下語法:

 %[argument_index$][flags][width][.precision]conversion

可選的argument_index是一個(gè)十進(jìn)制的整數(shù),表示參數(shù)在參數(shù)列表中的位置。第一個(gè)參數(shù)用 "1$"引用,第二個(gè)用 "2$"引用,等等。

可選的flags是一組用于修改輸出格式的字符。有效標(biāo)志的集合取決于轉(zhuǎn)換的情況。

可選的width是一個(gè)正的十進(jìn)制整數(shù),表示要寫入輸出的最小字符數(shù)。

可選的precision是一個(gè)非負(fù)的十進(jìn)制整數(shù),通常用于限制字符的數(shù)量。具體行為取決于轉(zhuǎn)換的情況。

所需的conversion是一個(gè)字符,表示參數(shù)應(yīng)該如何被格式化。一個(gè)給定參數(shù)的有效轉(zhuǎn)換集取決于該參數(shù)的數(shù)據(jù)類型。

  • 用于表示日期和時(shí)間的類型的格式說明符具有以下語法:

 %[argument_index$][flags][width]conversion

可選的argument_index、flags和width定義如上。

所需的conversion是兩個(gè)字符序列。第一個(gè)字符是't''T'。第二個(gè)字符表示要使用的格式。這些字符與 GNUdate和 POSIXstrftime(3c)定義的字符相似但不完全相同。

與參數(shù)不對(duì)應(yīng)的格式說明符具有以下語法:

  • %[flags][width]conversion

可選flags和width定義如上。

所需的conversion是指示要在輸出中插入的內(nèi)容的字符。

conversion

conversion分為以下幾類:

  • 一般- 可應(yīng)用于任何參數(shù)類型
  • 字符- 可應(yīng)用于表示 Unicode 字符的基本類型:char、Character、byte、Byte、shortShort. 這種轉(zhuǎn)換也可以應(yīng)用于類型int和Integer當(dāng)Character.isValidCodePoint(int)返回true時(shí)
  • 數(shù)字

    Integral - 可以應(yīng)用于 Java 整數(shù)類型:byteByteshortShortintand IntegerlongLong, and BigInteger(但不是char或者 Character

    浮點(diǎn)- 可應(yīng)用于 Java 浮點(diǎn)類型: float、Float、doubleDoubleBigDecimal

  • 日期/時(shí)間- 可應(yīng)用于能夠編碼日期或時(shí)間的 Java 類型:long、Long、Calendar和 DateTemporalAccessor
  • 百分比- 產(chǎn)生字面的'%' ( '\u0025')
  • 行分隔符 - 生成特定于平臺(tái)的行分隔符

對(duì)于類別General、Character、Numberic、Integral和Date/Time轉(zhuǎn)換,除非另有說明,否則如果參數(shù)arg為null,則結(jié)果為 "null"。

conversion參數(shù)類別描述
'b','B'一般如果參數(shù)arg是null,那么結(jié)果是 " false"。如果arg是 abooleanBoolean,則結(jié)果是由 . 返回的字符串String.valueOf(arg)。否則,結(jié)果為“真”。
'h','H'一般結(jié)果是通過調(diào)用獲得的 Integer.toHexString(arg.hashCode())。
's','S'一般如果arg實(shí)現(xiàn)Formattable,則 arg.formatTo調(diào)用。否則,通過調(diào)用 獲得結(jié)果arg.toString()。
'c','C'字符結(jié)果是一個(gè) Unicode 字符
'd'整型結(jié)果被格式化為十進(jìn)制整數(shù)
'o'整型結(jié)果被格式化為八進(jìn)制整數(shù)
'x','X'整型結(jié)果被格式化為十六進(jìn)制整數(shù)
'e','E'浮點(diǎn)結(jié)果被格式化為計(jì)算機(jī)科學(xué)記數(shù)法中的十進(jìn)制數(shù)
'f'浮點(diǎn)結(jié)果被格式化為十進(jìn)制數(shù)
'g','G'浮點(diǎn)結(jié)果使用計(jì)算機(jī)科學(xué)記數(shù)法或十進(jìn)制格式進(jìn)行格式化,具體取決于精度和舍入后的值。
'a','A'浮點(diǎn)結(jié)果被格式化為帶有有效數(shù)和指數(shù)的十六進(jìn)制浮點(diǎn)數(shù)。盡管后者屬于 浮點(diǎn)參數(shù)類別 ,但該類型不支持此轉(zhuǎn)換。BigDecimal
't','T'日期/時(shí)間日期和時(shí)間轉(zhuǎn)換字符的前綴。請(qǐng)參閱日期/時(shí)間轉(zhuǎn)換
'%'百分結(jié)果是字面的'%''\u0025')
'n'行分隔符結(jié)果是特定于平臺(tái)的行分隔符

日期/時(shí)間轉(zhuǎn)換

以下日期和時(shí)間轉(zhuǎn)換后綴字符是定義給't','T'-這兩個(gè)conversion的。

以下轉(zhuǎn)換字符用于格式化時(shí)間:

'H'24 小時(shí)制的一天中的小時(shí),格式為兩位數(shù),必要時(shí)帶有前導(dǎo)零,即00 - 23.
'I'12 小時(shí)制的小時(shí),格式為兩位數(shù),必要時(shí)帶有前導(dǎo)零,即 01 - 12.
'k'24 小時(shí)制的一天中的小時(shí),即0 - 23.
'l'12 小時(shí)制的小時(shí),即1 - 12.
'M'小時(shí)內(nèi)的分鐘格式為兩位數(shù),必要時(shí)帶有前導(dǎo)零,即 00 - 59.
'S'分鐘內(nèi)的秒數(shù),必要時(shí)格式化為帶有前導(dǎo)零的兩位數(shù)字,即00 - 60(“ 60”是支持閏秒所需的特殊值)。
'L'秒內(nèi)的毫秒格式為三位數(shù)字,必要時(shí)帶有前導(dǎo)零,即000 - 999.
'N'秒內(nèi)的納秒,格式為九位數(shù)字,必要時(shí)帶有前導(dǎo)零,即000000000 - 999999999.
'p'小寫的特定于區(qū)域設(shè)置的上午或下午am標(biāo)記,例如“ ”或“ pm”。使用轉(zhuǎn)換前綴'T'會(huì)強(qiáng)制此輸出為大寫。
'z'RFC 822 風(fēng)格的數(shù)字時(shí)區(qū)從 GMT 偏移,例如-0800. 該值將根據(jù)夏令時(shí)的需要進(jìn)行調(diào)整。對(duì)于 long、LongDate使用的時(shí)區(qū)是此 Java 虛擬機(jī)實(shí)例的默認(rèn)時(shí)區(qū)。
'Z'表示時(shí)區(qū)縮寫的字符串。該值將根據(jù)夏令時(shí)的需要進(jìn)行調(diào)整。對(duì)于 longLongDate使用的時(shí)區(qū)是此 Java 虛擬機(jī)實(shí)例的默認(rèn)時(shí)區(qū)。格式化程序的語言環(huán)境將取代參數(shù)的語言環(huán)境(如果有)。
's'自世界標(biāo)準(zhǔn)時(shí)間 1970 年 1 月 1 日開始的紀(jì)元開始以來的秒數(shù) 00:00:00,即Long.MIN_VALUE/1000到 Long.MAX_VALUE/1000.
'Q'自世界標(biāo)準(zhǔn)時(shí)間 1970 年 1 月 1 日開始的紀(jì)元開始以來的毫秒數(shù)00:00:00,即. Long.MIN_VALUELong.MAX_VALUE

以下轉(zhuǎn)換字符用于格式化日期:

'B'特定于語言環(huán)境的完整月份名稱"January",例如"February".
'b'特定于區(qū)域設(shè)置的縮寫月份名稱"Jan",例如"Feb".
'h'與 相同'b'
'A'特定于語言環(huán)境的星期幾的全名,例如"Sunday","Monday"
'a'特定于語言環(huán)境的星期幾的短名稱,例如"Sun""Mon"
'C'四位數(shù)年份除以100,格式為兩位數(shù),必要時(shí)前導(dǎo)零,即00 - 99
'Y'年份,格式為至少四位數(shù)字,必要時(shí)帶有前導(dǎo)零,例如,對(duì)于公歷 ,0092等于CE。92
'y'年份的最后兩位數(shù)字,必要時(shí)用前導(dǎo)零格式化,即00 - 99.
'j'一年中的某一天,根據(jù)需要格式化為帶有前導(dǎo)零的三位數(shù)字,例如001 - 366公歷。
'm'月份,格式為兩位數(shù),必要時(shí)帶有前導(dǎo)零,即01 - 13.
'd'日期,格式為兩位數(shù),必要時(shí)帶有前導(dǎo)零,即 01 - 31
'e'日期,格式為兩位數(shù),即1 - 31.

以下轉(zhuǎn)換字符用于格式化常見的日期/時(shí)間組合。

'R'24 小時(shí)制的時(shí)間格式為 "%tH:%tM"
'T'24 小時(shí)制的時(shí)間格式為"%tH:%tM:%tS".
'r'12 小時(shí)制的時(shí)間格式為"%tI:%tM:%tS %Tp". 上午或下午標(biāo)記 ( '%Tp') 的位置可能取決于區(qū)域設(shè)置。
'D'日期格式為"%tm/%td/%ty".
'F'ISO 8601 完整日期格式為"%tY-%tm-%td".
'c'日期和時(shí)間格式為"%ta %tb %td %tT %tZ %tY",例如"Sun Jul 20 16:17:00 EDT 1969"。

任何未明確定義為日期/時(shí)間轉(zhuǎn)換后綴的字符都是非法的,并為將來的擴(kuò)展保留。

Flags

Flags一般字符整型浮點(diǎn)日期/時(shí)間描述
'-'結(jié)果將左對(duì)齊。
'#'是1-是3-結(jié)果應(yīng)使用依賴于轉(zhuǎn)換的替代形式
'+'--是4-結(jié)果將始終包含一個(gè)標(biāo)志
''--是4-結(jié)果將包括正值的前導(dǎo)空格
'0'---結(jié)果將被零填充
','--是2是5-結(jié)果將包括特定于語言環(huán)境的分組分隔符
'('--是4是5-結(jié)果將用括號(hào)括起來負(fù)數(shù)

1取決于 Formattable的定義

2僅用于'd'conversion。

3僅適用于'o'、'x''X'conversion。

4對(duì)于'd','o','x', 和'X'conversions應(yīng)用于BigInteger'd'應(yīng)用于byte,Byte,short,Short,intInteger,long, 和Long

5僅適用于'e'、'E''f'、'g''G'conversion。

任何未明確定義為標(biāo)志的字符都是非法的,并為將來的擴(kuò)展保留。

到此這篇關(guān)于Java格式字符串的使用的文章就介紹到這了,更多相關(guān)Java格式字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用java實(shí)現(xiàn)一個(gè)客戶信息管理系統(tǒng)

    利用java實(shí)現(xiàn)一個(gè)客戶信息管理系統(tǒng)

    這篇文章主要給大家介紹了關(guān)于利用java實(shí)現(xiàn)一個(gè)客戶信息管理系統(tǒng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 關(guān)于spring中事務(wù)的傳播機(jī)制

    關(guān)于spring中事務(wù)的傳播機(jī)制

    這篇文章主要介紹了關(guān)于spring中事務(wù)的傳播機(jī)制,所謂事務(wù)傳播機(jī)制,也就是在事務(wù)在多個(gè)方法的調(diào)用中是如何傳遞的,是重新創(chuàng)建事務(wù)還是使用父方法的事務(wù),需要的朋友可以參考下
    2023-05-05
  • SpringBoot3整合Mybatis完整版實(shí)例

    SpringBoot3整合Mybatis完整版實(shí)例

    本文詳細(xì)介紹了SpringBoot3整合MyBatis的完整步驟,包括添加數(shù)據(jù)庫驅(qū)動(dòng)和MyBatis依賴、配置數(shù)據(jù)源和MyBatis、創(chuàng)建表和Bean類、編寫Mapper接口和XML文件、創(chuàng)建Controller類以及配置掃描包,通過這些步驟,可以實(shí)現(xiàn)SpringBoot3與MyBatis的成功整合,并進(jìn)行功能測試
    2025-01-01
  • SpringBoot中實(shí)現(xiàn)訂單30分鐘自動(dòng)取消的項(xiàng)目實(shí)踐

    SpringBoot中實(shí)現(xiàn)訂單30分鐘自動(dòng)取消的項(xiàng)目實(shí)踐

    現(xiàn)在電子商務(wù)平臺(tái)上訂單創(chuàng)建成功,等待支付,一般會(huì)給30分鐘的時(shí)間,本文主要介紹了SpringBoot中實(shí)現(xiàn)訂單30分鐘自動(dòng)取消的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Spring?Boot中KafkaListener的介紹、原理和使用方法案例詳解

    Spring?Boot中KafkaListener的介紹、原理和使用方法案例詳解

    本文介紹了Spring Boot中 @KafkaListener 注解的介紹、原理和使用方法,通過本文的介紹,我們希望讀者能夠更好地理解Spring Boot中 @KafkaListener 注解的使用方法,并在項(xiàng)目中更加靈活地應(yīng)用
    2023-09-09
  • Java通過jedis連接redis的幾種常用方法

    Java通過jedis連接redis的幾種常用方法

    jedis封裝了redis原有的操作命令,使用起來很簡單,本文主要介紹了Java通過jedis連接redis的幾種常用方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • JavaWeb實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(2)

    JavaWeb實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)(2)

    這篇文章主要介紹了JavaWeb實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)的第二篇,實(shí)現(xiàn)學(xué)生管理系統(tǒng)的查找和添加功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Java實(shí)現(xiàn)查找算法的示例代碼(二分查找、插值查找、斐波那契查找)

    Java實(shí)現(xiàn)查找算法的示例代碼(二分查找、插值查找、斐波那契查找)

    查找就是根據(jù)給定的某個(gè)值,在查找表中確定一個(gè)其關(guān)鍵字等于給定值的數(shù)據(jù)元素。本文介紹了常見的數(shù)據(jù)查找算法:順序查找、二分查找、插值查找和斐波那契查找等以及相應(yīng)的Java代碼實(shí)現(xiàn)。需要的可以參考一下
    2022-01-01
  • springboot2.0配置連接池(hikari、druid)的方法

    springboot2.0配置連接池(hikari、druid)的方法

    springboot 2.0 默認(rèn)連接池就是Hikari了,直接在配置文件中輸入配置就可以了,本文通過實(shí)例代碼給大家介紹了springboot2.0配置連接池(hikari、druid)的方法,感興趣的朋友一起看看吧
    2021-12-12
  • 三步輕松實(shí)現(xiàn)Java的SM2前端加密后端解密

    三步輕松實(shí)現(xiàn)Java的SM2前端加密后端解密

    SM2算法和RSA算法都是公鑰密碼算法,SM2算法是一種更先進(jìn)安全的算法,在我們國家商用密碼體系中被用來替換RSA算法,這篇文章主要給大家介紹了關(guān)于如何通過三步輕松實(shí)現(xiàn)Java的SM2前端加密后端解密的相關(guān)資料,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

黄大仙区| 封开县| 侯马市| 墨江| 弥勒县| 类乌齐县| 来宾市| 山阳县| 平阴县| 贞丰县| 左贡县| 汽车| 永泰县| 山阳县| 吉木萨尔县| 曲沃县| 柘城县| 思南县| 泸定县| 安多县| 墨脱县| 佛坪县| 治多县| 洛浦县| 临泽县| 思茅市| 峨眉山市| 鲁甸县| 涪陵区| 天门市| 讷河市| 邯郸县| 酒泉市| 呈贡县| 大埔县| 温州市| 宁河县| 双桥区| 博客| 东阿县| 育儿|