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

Java字符串格式化功能?String.format用法詳解

 更新時(shí)間:2024年09月06日 00:38:45   作者:肥仔John  
String類(lèi)的format()方法用于創(chuàng)建格式化的字符串以及連接多個(gè)字符串對(duì)象,熟悉C語(yǔ)言的同學(xué)應(yīng)該記得C語(yǔ)言的sprintf()方法,兩者有類(lèi)似之處,format()方法有兩種重載形式

一、前言

   String.format 作為文本處理工具,為我們提供強(qiáng)大而豐富的字符串格式化功能,為了不止步于簡(jiǎn)單調(diào)用 String.format("Hello %s", "John");

,下面將筆記整理并記錄下來(lái)。

二、重載方法                          

// 使用當(dāng)前本地區(qū)域?qū)ο螅↙ocale.getDefault())格式化字符串
String String.format(String fmt, Object... args);

// 自定義本地區(qū)域?qū)ο蟾袷交址?
String String.format(Locale locale, String fmt, Object... args);

三、占位符

占位符完整格式為: %[index$][標(biāo)識(shí)]*[最小寬度][.精度]轉(zhuǎn)換符 。

針對(duì)不同數(shù)據(jù)類(lèi)型的格式化,占位符的格式將有所裁剪。

% ,占位符的其實(shí)字符,若要在占位符內(nèi)部使用%,則需要寫(xiě)成 %% 。

[index$] ,位置索引從1開(kāi)始計(jì)算,用于指定對(duì)索引相應(yīng)的實(shí)參進(jìn)行格式化并替換掉該占位符。

[標(biāo)識(shí)] ,用于增強(qiáng)格式化能力,可同時(shí)使用多個(gè) [標(biāo)識(shí)] ,但某些標(biāo)識(shí)是不能同時(shí)使用的。

[最小寬度] ,用于設(shè)置格式化后的字符串最小長(zhǎng)度,若使用 [最小寬度] 而無(wú)設(shè)置 [標(biāo)識(shí)] ,那么當(dāng)字符串長(zhǎng)度小于最小寬度時(shí),則以左邊補(bǔ)空格的方式湊夠最小寬度。

[.精度] ,對(duì)于浮點(diǎn)數(shù)類(lèi)型格式化使用,設(shè)置保留小數(shù)點(diǎn)后多少位。

轉(zhuǎn)換符 ,用于指定格式化的樣式,和限制對(duì)應(yīng)入?yún)⒌臄?shù)據(jù)類(lèi)型。

四、對(duì)字符、字符串進(jìn)行格式化                    

  占位符格式為: %[index$][標(biāo)識(shí)][最小寬度]轉(zhuǎn)換符 

  示例——將"hello"格式化為"  hello"

String raw = "hello";
String str = String.format("%1$7s", raw);
// 簡(jiǎn)化
//String str = String.format("%7s", raw);

  示例——將"hello"格式化為"hello  "

String raw = "hello";
String str = String.format("%1$-7s", raw);
// 簡(jiǎn)化
//String str = String.format("%-7s", raw);

可用標(biāo)識(shí):

   -,在最小寬度內(nèi)左對(duì)齊,右邊用空格補(bǔ)上。

可用轉(zhuǎn)換符:

   s,字符串類(lèi)型。

   c,字符類(lèi)型,實(shí)參必須為char或int、short等可轉(zhuǎn)換為char類(lèi)型的數(shù)據(jù)類(lèi)型,否則拋IllegalFormatConversionException異常。

   b,布爾類(lèi)型,只要實(shí)參為非false的布爾類(lèi)型,均格式化為字符串true,否則為字符串false。

   n,平臺(tái)獨(dú)立的換行符(與通過(guò) System.getProperty("line.separator") 是一樣的)

五、對(duì)整數(shù)進(jìn)行格式化                       

常規(guī)類(lèi)型的格式化

String類(lèi)的format()方法用于創(chuàng)建格式化的字符串以及連接多個(gè)字符串對(duì)象。熟悉C語(yǔ)言的同學(xué)應(yīng)該記得C語(yǔ)言的sprintf()方法,兩者有類(lèi)似之處。format()方法有兩種重載形式。
format(String format, Object... args) 新字符串使用本地語(yǔ)言環(huán)境,制定字符串格式和參數(shù)生成格式化的新字符串。

format(Locale locale, String format, Object... args) 使用指定的語(yǔ)言環(huán)境,制定字符串格式和參數(shù)生成格式化的字符串。

顯示不同轉(zhuǎn)換符實(shí)現(xiàn)不同數(shù)據(jù)類(lèi)型到字符串的轉(zhuǎn)換。

轉(zhuǎn)  換  符

說(shuō)    明 

示    例

%s

字符串類(lèi)型

"mingrisoft"

%c

字符類(lèi)型

'm'

%b

布爾類(lèi)型

true

%d

整數(shù)類(lèi)型(十進(jìn)制)

99

%x

整數(shù)類(lèi)型(十六進(jìn)制)

FF

%o

整數(shù)類(lèi)型(八進(jìn)制)

77

%f

浮點(diǎn)類(lèi)型

99.99

%a

十六進(jìn)制浮點(diǎn)類(lèi)型

FF.35AE

%e

指數(shù)類(lèi)型

9.38e+5

%g

通用浮點(diǎn)類(lèi)型(f和e類(lèi)型中較短的)

%h

散列碼

%%

百分比類(lèi)型

%n

換行符

%tx

日期與時(shí)間類(lèi)型(x代表不同的日期與時(shí)間轉(zhuǎn)換符

測(cè)試用例

	public static void main(String[] args) {
	    String str=null;
	    str=String.format("Hi,%s", "王力");
	    System.out.println(str);
	    str=String.format("Hi,%s:%s.%s", "王南","王力","王張");          
	    System.out.println(str);                         
	    System.out.printf("字母a的大寫(xiě)是:%c %n", 'A');
	    System.out.printf("3>7的結(jié)果是:%b %n", 3>7);
	    System.out.printf("100的一半是:%d %n", 100/2);
	    System.out.printf("100的16進(jìn)制數(shù)是:%x %n", 100);
	    System.out.printf("100的8進(jìn)制數(shù)是:%o %n", 100);
	    System.out.printf("50元的書(shū)打8.5折扣是:%f 元%n", 50*0.85);
	    System.out.printf("上面價(jià)格的16進(jìn)制數(shù)是:%a %n", 50*0.85);
	    System.out.printf("上面價(jià)格的指數(shù)表示:%e %n", 50*0.85);
	    System.out.printf("上面價(jià)格的指數(shù)和浮點(diǎn)數(shù)結(jié)果的長(zhǎng)度較短的是:%g %n", 50*0.85);
	    System.out.printf("上面的折扣是%d%% %n", 85);
	    System.out.printf("字母A的散列碼是:%h %n", 'A');
	}

輸出結(jié)果

Hi,王力
Hi,王南:王力.王張
字母a的大寫(xiě)是:A 
3>7的結(jié)果是:false 
100的一半是:50 
100的16進(jìn)制數(shù)是:64 
100的8進(jìn)制數(shù)是:144 
50元的書(shū)打8.5折扣是:42.500000 元
上面價(jià)格的16進(jìn)制數(shù)是:0x1.54p5 
上面價(jià)格的指數(shù)表示:4.250000e+01 
上面價(jià)格的指數(shù)和浮點(diǎn)數(shù)結(jié)果的長(zhǎng)度較短的是:42.5000 
上面的折扣是85% 
字母A的散列碼是:41 

占位符格式為: %[index$][標(biāo)識(shí)]*[最小寬度]轉(zhuǎn)換符 

示例——將1顯示為0001

int num = 1;
String str = String.format("%04d", num)

  示例——將-1000顯示為(1,000)

int num = -1000;
String str = String.format("%(,d", num)

可用標(biāo)識(shí):

-,在最小寬度內(nèi)左對(duì)齊,不可以與0標(biāo)識(shí)一起使用。
0,若內(nèi)容長(zhǎng)度不足最小寬度,則在左邊用0來(lái)填充。
#,對(duì)8進(jìn)制和16進(jìn)制,8進(jìn)制前添加一個(gè)0,16進(jìn)制前添加0x。
+,結(jié)果總包含一個(gè)+或-號(hào)。
空格,正數(shù)前加空格,負(fù)數(shù)前加-號(hào)。
,,只用與十進(jìn)制,每3位數(shù)字間用,分隔。
(,若結(jié)果為負(fù)數(shù),則用括號(hào)括住,且不顯示符號(hào)。

可用轉(zhuǎn)換符:

b,布爾類(lèi)型,只要實(shí)參為非false的布爾類(lèi)型,均格式化為字符串true,否則為字符串false。
d,整數(shù)類(lèi)型(十進(jìn)制)。
x,整數(shù)類(lèi)型(十六進(jìn)制)。
o,整數(shù)類(lèi)型(八進(jìn)制)
n,平臺(tái)獨(dú)立的換行符, 也可通過(guò)System.getProperty("line.separator")獲取

六、對(duì)浮點(diǎn)數(shù)進(jìn)行格式化                        

   占位符格式為: %[index$][標(biāo)識(shí)]*[最小寬度][.精度]轉(zhuǎn)換符 

   示例:

double num = 123.4567899;
System.out.print(String.format("%f %n", num)); // 123.456790 
System.out.print(String.format("%a %n", num)); // 0x1.edd3c0bb46929p6 
System.out.print(String.format("%g %n", num)); // 123.457

可用標(biāo)識(shí):

-,在最小寬度內(nèi)左對(duì)齊,不可以與0標(biāo)識(shí)一起使用。
0,若內(nèi)容長(zhǎng)度不足最小寬度,則在左邊用0來(lái)填充。
#,對(duì)8進(jìn)制和16進(jìn)制,8進(jìn)制前添加一個(gè)0,16進(jìn)制前添加0x。
+,結(jié)果總包含一個(gè)+或-號(hào)。
空格,正數(shù)前加空格,負(fù)數(shù)前加-號(hào)。
,,只用與十進(jìn)制,每3位數(shù)字間用,分隔。
(,若結(jié)果為負(fù)數(shù),則用括號(hào)括住,且不顯示符號(hào)。

可用轉(zhuǎn)換符:

b,布爾類(lèi)型,只要實(shí)參為非false的布爾類(lèi)型,均格式化為字符串true,否則為字符串false。
n,平臺(tái)獨(dú)立的換行符, 也可通過(guò)System.getProperty("line.separator")獲取。
f,浮點(diǎn)數(shù)型(十進(jìn)制)。顯示9位有效數(shù)字,且會(huì)進(jìn)行四舍五入。如99.99。
a,浮點(diǎn)數(shù)型(十六進(jìn)制)。
e,指數(shù)類(lèi)型。如9.38e+5。
g,浮點(diǎn)數(shù)型(比%f,%a長(zhǎng)度短些,顯示6位有效數(shù)字,且會(huì)進(jìn)行四舍五入)

七、對(duì)日期時(shí)間進(jìn)行格式化                      

   占位符格式為: %[index$]t轉(zhuǎn)換符 

   示例:

Date now = new Date();
String str = String.format("%tF", now); // 2024-09-06

可用轉(zhuǎn)換符

  1. 日期的轉(zhuǎn)換符

c,星期六 十月 27 14:21:20 CST 2024
F,2024-10-27
D,10/27/07
r,02:25:51 下午
T,14:28:16
R,14:28
b, 月份簡(jiǎn)稱
B, 月份全稱
a, 星期簡(jiǎn)稱
A, 星期全稱
C, 年前兩位(不足兩位補(bǔ)零)
y, 年后兩位(不足兩位補(bǔ)零)
j, 當(dāng)年的第幾天
m, 月份(不足兩位補(bǔ)零)
d, 日期(不足兩位補(bǔ)零)
e, 日期(不足兩位不補(bǔ)零)

  2. 時(shí)間的轉(zhuǎn)換符

H, 24小時(shí)制的小時(shí)(不足兩位補(bǔ)零)
k, 24小時(shí)制的小時(shí)(不足兩位不補(bǔ)零)
I, 12小時(shí)制的小時(shí)(不足兩位補(bǔ)零)
i, 12小時(shí)制的小時(shí)(不足兩位不補(bǔ)零)
M, 分鐘(不足兩位補(bǔ)零)
S, 秒(不足兩位補(bǔ)零)
L, 毫秒(不足三位補(bǔ)零)
N, 毫秒(不足9位補(bǔ)零)
p, 小寫(xiě)字母的上午或下午標(biāo)記,如中文為“下午”,英文為pm
z, 相對(duì)于GMT的時(shí)區(qū)偏移量,如+0800
Z, 時(shí)區(qū)縮寫(xiě),如CST
s, 自1970-1-1 00:00:00起經(jīng)過(guò)的秒數(shù)
Q, 自1970-1-1 00:00:00起經(jīng)過(guò)的豪秒

八、其他轉(zhuǎn)換符

 <,用于格式化前一個(gè)轉(zhuǎn)換符所描述的參數(shù)。

 示例:

int num = 1000;
String str = String.format("%d %<,d", num);
// 結(jié)果"1000 1,000

九、總結(jié)

  暫時(shí)寫(xiě)到這里吧,以后用到其他的再補(bǔ)充上去!

參考

http://blog.csdn.net/lonely_fireworks/article/details/7962171

http://www.cnblogs.com/xytop/articles/1277125.html

相關(guān)文章

  • Java?DelayQueue實(shí)現(xiàn)延時(shí)任務(wù)的示例詳解

    Java?DelayQueue實(shí)現(xiàn)延時(shí)任務(wù)的示例詳解

    DelayQueue是一個(gè)無(wú)界的BlockingQueue的實(shí)現(xiàn)類(lèi),用于放置實(shí)現(xiàn)了Delayed接口的對(duì)象,其中的對(duì)象只能在其到期時(shí)才能從隊(duì)列中取走。本文就來(lái)利用DelayQueue實(shí)現(xiàn)延時(shí)任務(wù),感興趣的可以了解一下
    2022-08-08
  • Java實(shí)現(xiàn)生成JSON字符串的三種方式分享

    Java實(shí)現(xiàn)生成JSON字符串的三種方式分享

    這篇文章主要來(lái)和大家分享一下Java實(shí)現(xiàn)生成JSON字符串的常見(jiàn)三種方式,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以參考一下
    2023-05-05
  • Java實(shí)現(xiàn)刪除文件中的指定內(nèi)容

    Java實(shí)現(xiàn)刪除文件中的指定內(nèi)容

    在日常開(kāi)發(fā)中,經(jīng)常需要對(duì)文本文件進(jìn)行批量處理,其中,刪除文件中指定內(nèi)容是最常見(jiàn)的需求之一,下面我們就來(lái)看看如何使用java實(shí)現(xiàn)刪除文件中的指定內(nèi)容吧
    2025-06-06
  • 使用工具類(lèi)-java精確到小數(shù)點(diǎn)后6位

    使用工具類(lèi)-java精確到小數(shù)點(diǎn)后6位

    這篇文章主要介紹了使用工具類(lèi)-java精確到小數(shù)點(diǎn)后6位,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 由@NotNull注解引出的關(guān)于Java空指針的控制

    由@NotNull注解引出的關(guān)于Java空指針的控制

    這是一些很容易學(xué)會(huì)的簡(jiǎn)單技術(shù),但是對(duì)于代碼質(zhì)量和健壯性來(lái)說(shuō)確實(shí)很重要。以我的經(jīng)驗(yàn),僅是第一個(gè)小技巧就已經(jīng)對(duì)改進(jìn)代碼質(zhì)量具有很大的作用了
    2016-09-09
  • java中SPI服務(wù)提供者的接口使用總結(jié)

    java中SPI服務(wù)提供者的接口使用總結(jié)

    SPI英文全稱為Service?Provider?Interface,顧名思義,服務(wù)提供者接口,它是jdk提供給“服務(wù)提供廠商”或者“插件開(kāi)發(fā)者”使用的接口
    2022-02-02
  • SpringBoot(JAVA)整合微信公眾號(hào)消息推送完整步驟(文本、圖片/視頻推送)

    SpringBoot(JAVA)整合微信公眾號(hào)消息推送完整步驟(文本、圖片/視頻推送)

    微信公眾號(hào)消息推送包括文本推送和圖文/視頻推送兩類(lèi),文本推送通過(guò)模板消息或自定義消息實(shí)現(xiàn),而圖文/視頻推送需先上傳素材至臨時(shí)/永久素材庫(kù),再上傳圖文消息,最后進(jìn)行消息推送,文中將實(shí)現(xiàn)的方法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • 本地緩存在Java中的實(shí)現(xiàn)過(guò)程

    本地緩存在Java中的實(shí)現(xiàn)過(guò)程

    這篇文章主要介紹了本地緩存在Java中的實(shí)現(xiàn)過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • SpringBoot項(xiàng)目中訪問(wèn)HTML頁(yè)面的實(shí)現(xiàn)示例

    SpringBoot項(xiàng)目中訪問(wèn)HTML頁(yè)面的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot項(xiàng)目中訪問(wèn)HTML頁(yè)面的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • java語(yǔ)言注解基礎(chǔ)概念詳解

    java語(yǔ)言注解基礎(chǔ)概念詳解

    這篇文章主要介紹了java語(yǔ)言注解基礎(chǔ)概念詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12

最新評(píng)論

湄潭县| 招远市| 宜丰县| 休宁县| 大埔区| 合山市| 吉林市| 剑川县| 和林格尔县| 车险| 包头市| 涟水县| 巴东县| 土默特右旗| 平乐县| 房产| 玛多县| 马边| 广元市| 柳江县| 高密市| 广宗县| 布拖县| 华宁县| 平果县| 亳州市| 若羌县| 夏邑县| 昭通市| 新民市| 苍梧县| 镶黄旗| 即墨市| 镇原县| 屏边| 南召县| 宝兴县| 达日县| 汪清县| 莲花县| 长乐市|