欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、前言

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

,下面將筆記整理并記錄下來。

二、重載方法                          

// 使用當前本地區(qū)域對象(Locale.getDefault())格式化字符串
String String.format(String fmt, Object... args);

// 自定義本地區(qū)域對象格式化字符串
String String.format(Locale locale, String fmt, Object... args);

三、占位符

占位符完整格式為: %[index$][標識]*[最小寬度][.精度]轉換符 。

針對不同數據類型的格式化,占位符的格式將有所裁剪。

% ,占位符的其實字符,若要在占位符內部使用%,則需要寫成 %% 。

[index$] ,位置索引從1開始計算,用于指定對索引相應的實參進行格式化并替換掉該占位符。

[標識] ,用于增強格式化能力,可同時使用多個 [標識] ,但某些標識是不能同時使用的。

[最小寬度] ,用于設置格式化后的字符串最小長度,若使用 [最小寬度] 而無設置 [標識] ,那么當字符串長度小于最小寬度時,則以左邊補空格的方式湊夠最小寬度。

[.精度] ,對于浮點數類型格式化使用,設置保留小數點后多少位。

轉換符 ,用于指定格式化的樣式,和限制對應入參的數據類型。

四、對字符、字符串進行格式化                    

  占位符格式為: %[index$][標識][最小寬度]轉換符 

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

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

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

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

可用標識:

   -,在最小寬度內左對齊,右邊用空格補上。

可用轉換符:

   s,字符串類型。

   c,字符類型,實參必須為char或int、short等可轉換為char類型的數據類型,否則拋IllegalFormatConversionException異常。

   b,布爾類型,只要實參為非false的布爾類型,均格式化為字符串true,否則為字符串false。

   n,平臺獨立的換行符(與通過 System.getProperty("line.separator") 是一樣的)

五、對整數進行格式化                       

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

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

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

顯示不同轉換符實現不同數據類型到字符串的轉換。

轉  換  符

說    明 

示    例

%s

字符串類型

"mingrisoft"

%c

字符類型

'm'

%b

布爾類型

true

%d

整數類型(十進制)

99

%x

整數類型(十六進制)

FF

%o

整數類型(八進制)

77

%f

浮點類型

99.99

%a

十六進制浮點類型

FF.35AE

%e

指數類型

9.38e+5

%g

通用浮點類型(f和e類型中較短的)

%h

散列碼

%%

百分比類型

%n

換行符

%tx

日期與時間類型(x代表不同的日期與時間轉換符

測試用例

	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的大寫是:%c %n", 'A');
	    System.out.printf("3>7的結果是:%b %n", 3>7);
	    System.out.printf("100的一半是:%d %n", 100/2);
	    System.out.printf("100的16進制數是:%x %n", 100);
	    System.out.printf("100的8進制數是:%o %n", 100);
	    System.out.printf("50元的書打8.5折扣是:%f 元%n", 50*0.85);
	    System.out.printf("上面價格的16進制數是:%a %n", 50*0.85);
	    System.out.printf("上面價格的指數表示:%e %n", 50*0.85);
	    System.out.printf("上面價格的指數和浮點數結果的長度較短的是:%g %n", 50*0.85);
	    System.out.printf("上面的折扣是%d%% %n", 85);
	    System.out.printf("字母A的散列碼是:%h %n", 'A');
	}

輸出結果

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

占位符格式為: %[index$][標識]*[最小寬度]轉換符 

示例——將1顯示為0001

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

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

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

可用標識:

-,在最小寬度內左對齊,不可以與0標識一起使用。
0,若內容長度不足最小寬度,則在左邊用0來填充。
#,對8進制和16進制,8進制前添加一個0,16進制前添加0x。
+,結果總包含一個+或-號。
空格,正數前加空格,負數前加-號。
,,只用與十進制,每3位數字間用,分隔。
(,若結果為負數,則用括號括住,且不顯示符號。

可用轉換符:

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

六、對浮點數進行格式化                        

   占位符格式為: %[index$][標識]*[最小寬度][.精度]轉換符 

   示例:

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

可用標識:

-,在最小寬度內左對齊,不可以與0標識一起使用。
0,若內容長度不足最小寬度,則在左邊用0來填充。
#,對8進制和16進制,8進制前添加一個0,16進制前添加0x。
+,結果總包含一個+或-號。
空格,正數前加空格,負數前加-號。
,,只用與十進制,每3位數字間用,分隔。
(,若結果為負數,則用括號括住,且不顯示符號。

可用轉換符:

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

七、對日期時間進行格式化                      

   占位符格式為: %[index$]t轉換符 

   示例:

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

可用轉換符

  1. 日期的轉換符

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, 月份簡稱
B, 月份全稱
a, 星期簡稱
A, 星期全稱
C, 年前兩位(不足兩位補零)
y, 年后兩位(不足兩位補零)
j, 當年的第幾天
m, 月份(不足兩位補零)
d, 日期(不足兩位補零)
e, 日期(不足兩位不補零)

  2. 時間的轉換符

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

八、其他轉換符

 <,用于格式化前一個轉換符所描述的參數。

 示例:

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

九、總結

  暫時寫到這里吧,以后用到其他的再補充上去!

參考

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

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

相關文章

  • Spring Boot定時任務單線程多線程實現代碼解析

    Spring Boot定時任務單線程多線程實現代碼解析

    這篇文章主要介紹了Spring Boot定時任務單線程多線程實現代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Java多線程基礎 線程的等待與喚醒(wait、notify、notifyAll)

    Java多線程基礎 線程的等待與喚醒(wait、notify、notifyAll)

    這篇文章主要介紹了Java多線程基礎 線程的等待與喚醒,需要的朋友可以參考下
    2017-05-05
  • SpringBoot統(tǒng)一api返回風格的實現

    SpringBoot統(tǒng)一api返回風格的實現

    這篇文章主要介紹了SpringBoot統(tǒng)一api返回風格的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Java讀寫pdf文件的詳細實現方法

    Java讀寫pdf文件的詳細實現方法

    最近公司的項目中需要操作pdf文件,所以這里給大家總結下方法,這篇文章主要給大家介紹了關于Java讀寫pdf文件的詳細實現方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • SpringBoot?使用log4j2的配置過程

    SpringBoot?使用log4j2的配置過程

    這篇文章主要介紹了SpringBoot?使用log4j2的配置,springboot默認是用logback的日志框架的,所以要在pom中配置排除logback。這里需要注意的是,其實不止一處使用了logback,所以要在starter中統(tǒng)一排除,然后引入log4j2,需要的朋友可以參考下
    2022-09-09
  • resultMap標簽中里的collection標簽詳解

    resultMap標簽中里的collection標簽詳解

    這篇文章主要介紹了resultMap標簽中里的collection標簽,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 簡單了解Spring Web相關模塊運行原理

    簡單了解Spring Web相關模塊運行原理

    這篇文章主要介紹了簡單了解Spring Web相關模塊運行原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • 代碼實例Java IO判斷目錄和文件是否存在

    代碼實例Java IO判斷目錄和文件是否存在

    本篇文章給大家分享了Java IO判斷目錄和文件是否存在的代碼,對此有需要的讀者們可以跟著小編一起學習下。
    2018-02-02
  • Java內部類的實現原理與可能的內存泄漏說明

    Java內部類的實現原理與可能的內存泄漏說明

    這篇文章主要介紹了Java內部類的實現原理與可能的內存泄漏說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 總結Java常用排序算法

    總結Java常用排序算法

    在本文里我們給大家整理了關于Java常用排序算法以及實例代碼分析,需要的朋友們跟著學習下。
    2019-03-03

最新評論