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

Java格式化類Format解讀

 更新時間:2024年12月14日 09:35:04   作者:騎個小蝸牛  
Java.text.Format 是 Java 格式化的抽象基類,用于將對象格式化為指定模式的字符串,或者將指定模式的字符串解析為對象,主要包含 format 和 parseObject 方法,分別用于格式化和解析

Format介紹

java.text.Format是Java格式化的抽象基類。主要用于將對象格式化為指定模式的字符串,或者將指定模式的字符串解析為對象。

Format方法

- format(格式化)

格式化:對象格式化為字符串。

public final String format (Object obj)
public final String format (Object obj) {
    return format(obj, new StringBuffer(), new FieldPosition(0)).toString();
}

一般使用此方法來將對象格式化為字符串,該方法為不可變方法,方法內(nèi)部調(diào)用抽象方法的具體子類實現(xiàn)。

public abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)

抽象方法,子類必須實現(xiàn)該方法,定義子類自己具體的對象格式化為字符串的邏輯。

- parseObject(解析)

解析:字符串解析為對象。

public Object parseObject(String source) throws ParseException
public Object parseObject(String source) throws ParseException {
    ParsePosition pos = new ParsePosition(0);
    Object result = parseObject(source, pos);
    if (pos.index == 0) {
        throw new ParseException("Format.parseObject(String) failed",
            pos.errorIndex);
    }
    return result;
}

一般使用此方法來將字符串解析為對象,該方法為不可變方法,方法內(nèi)部調(diào)用抽象方法的具體子類實現(xiàn)。

public abstract Object parseObject (String source, ParsePosition pos)

抽象方法,子類必須實現(xiàn)該方法,定義子類自己具體的字符串解析為對象的邏輯。

格式化分類

格式化分類格式化類描述
日期時間格式化DateFormat格式化日期時間的抽象類
SimpleDateFormatDateFormat的實現(xiàn)類,用于格式化和解析日期時間,非線程安全
ClassicFormatDateTimeFormatter的內(nèi)部類,提供日期時間的格式化和解析
數(shù)字格式化NumberFormat格式化數(shù)字的抽象類
DecimalFormatNumberFormat的實現(xiàn)類,提供數(shù)字格式化和解析
ChoiceFormatNumberFormat的實現(xiàn)類,可以根據(jù)特定的值范圍來選擇相應的格式
字符串格式化MessageFormat用于字符串格式化的類。它可以將帶有占位符的模板字符串和對應的參數(shù)值進行格式化
StringString類的format方法用于字符串的格式化

日期時間格式化

1. DateFormat

日期格式化抽象類,根據(jù)當前語言環(huán)境格式化日期和時間。

因為DateFormat是一個抽象類,所以不能直接new創(chuàng)建實例對象。但DateFormat提供了一些靜態(tài)方法便于我們構(gòu)建DateFormat子類的實例。

常用方法
getInstance

獲取格式化的日期時間

  • getInstance():輸出樣式:22-8-30 下午4:14
getDateInstance

獲取格式化的日期

方法描述
getDateInstance()輸出樣式:2022-8-30
getDateInstance(int style)指定樣式
getDateInstance(int style, Locale aLocale)指定樣式和語言環(huán)境
getTimeInstance

獲取格式化的時間

方法描述
getTimeInstance()輸出樣式:16:14:32
getTimeInstance(int style)指定樣式
getTimeInstance(int style, Locale aLocale)指定樣式和語言環(huán)境
getDateTimeInstance

獲取格式化的日期時間

方法描述
getDateTimeInstance()輸出樣式:2022-8-30 16:14:32
getDateTimeInstance(int dateStyle, int timeStyle)指定樣式
getDateTimeInstance(int dateStyle, int timeStyle, Locale aLocale)指定樣式和語言環(huán)境
方法入?yún)?/h5>
style

設(shè)置輸出樣式。

DateFormat提供了多種輸出樣式:

    /**
     * 完整樣式
     */
    public static final int FULL = 0;
    /**
     * 長樣式
     */
    public static final int LONG = 1;
    /**
     * 中等樣式
     */
    public static final int MEDIUM = 2;
    /**
     * 短樣式
     */
    public static final int SHORT = 3;
    /**
     * 默認樣式:中等樣式
     */
    public static final int DEFAULT = MEDIUM;
樣式輸出格式(日期Date)輸出格式(時間Time)
SHORT22-8-30下午4:03
MEDIUM
DEFAULT
2022-8-3016:03:06
LONG2022年8月30日下午04時03分06秒
FULL2022年8月30日 星期二下午04時03分06秒 CST
Locale

設(shè)置語言環(huán)境。

  • language:語言(zh:中文)
  • region:地區(qū)(CN:China)

2. SimpleDateFormat

SimpleDateFormat是DateFormat的一個具體實現(xiàn)類,是非線程安全的。

因為DateFormat直接支持的樣式比較少,經(jīng)常滿足不了實際需求,于是SimpleDateFormat就來了,SimpleDateFormat提供了豐富的樣式且可自定義樣式。

在使用SimpleDateFormat的時候,需要通過字母來描述時間元素,并組裝成想要的日期和時間模式。

常用模式元素

常用的日期時間元素和字母的對應表如下:

字母描述實例
G年代標志符(公元、公元前)AD、BC
y2015
Y周年2016
M年中的月份12
w年中的周數(shù)50
W月份中的周數(shù)02
D年中的天數(shù)344
d月份中的天數(shù)10
F月份中的星期02
E周中的天數(shù)(星期幾)Thu
u周中的天數(shù)(第幾天,星期一=1,星期日=7)1
aAM/PM標記AM、PM、上午、下午
H一天中的小時數(shù)(0~23)21
k一天中的小時數(shù)(1~24)21
KAM/PM中的小時數(shù)(0~11)09
hAM/PM中的小時數(shù)(1~12)09
m小時中的分鐘數(shù)31
s分鐘中的秒數(shù)08
S毫秒數(shù)716
z時區(qū)CST
Z時區(qū)(RFC 822標準時區(qū))+0800
X時區(qū)(ISO 8601標準時區(qū))+08

y與Y的區(qū)別:

  • YY是周年
  • yy是日歷年,推薦使用y

舉例:今天是2019年12月30日,日歷年是 2019,但周年是 2020,因為本周是 2020 年的第 1 周。所以yy是19,而YY是20。

使用方法
格式化
public static void main(String[] args) throws ParseException {
    Date date = new Date();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("G yyyy-MM-dd HH:mm:ss S E z");
    String format = simpleDateFormat.format(date);
}

debug:

解析
public static void main(String[] args) throws ParseException {
        String str = "公元 2022-08-30 22:10:03 530 星期二 CST";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("G yyyy-MM-dd HH:mm:ss S E z");
        Date date1 = (Date) simpleDateFormat.parseObject(str);
}

debug:

3. ClassicFormat

暫不分析。

數(shù)字格式化

1. NumberFormat

數(shù)字格式化抽象類,根據(jù)當前語言環(huán)境格式化數(shù)字。

NumberFormat是一個抽象類,不能直接new創(chuàng)建實例對象。NumberFormat提供了一些靜態(tài)方法便于我們構(gòu)建NumberFormat子類的實例。

常用方法
getInstance

獲取格式化的常規(guī)數(shù)值

  • getInstance()
  • getInstance(Locale inLocale)
getNumberInstance

獲取格式化的常規(guī)數(shù)值

  • getNumberInstance()
  • getNumberInstance(Locale inLocale)
getIntegerInstance

獲取格式化的整型數(shù)值

  • getIntegerInstance()
  • getIntegerInstance(Locale inLocale)
getPercentInstance

獲取格式化的百分比數(shù)值

  • getPercentInstance()
  • getPercentInstance(Locale inLocale)
getCurrencyInstance

獲取格式化的指定語言環(huán)境的貨幣數(shù)值

  • getCurrencyInstance()
  • getCurrencyInstance(Locale inLocale)
方法示例
public static void main(String[] args) throws ParseException {
    NumberFormat instance = NumberFormat.getInstance();
    String format = instance.format(2.3);
    System.out.println("getInstance=====================" + format);
    NumberFormat integerInstance = NumberFormat.getIntegerInstance();
    String format1 = integerInstance.format(2.3);
    System.out.println("getIntegerInstance==============" + format1);
    NumberFormat percentInstance = NumberFormat.getPercentInstance();
    String format2 = percentInstance.format(2.3);
    System.out.println("getPercentInstance==============" + format2);
    NumberFormat currencyInstance = NumberFormat.getCurrencyInstance();
    String format3 = currencyInstance.format(2.3);
    System.out.println("getCurrencyInstance=============" + format3);
    NumberFormat currencyInstance1 = NumberFormat.getCurrencyInstance(Locale.US);
    String format4 = currencyInstance1.format(2.3);
    System.out.println("getCurrencyInstance(Locale.US)==" + format4);
}

控制臺日志:

getInstance=====================2.3
getIntegerInstance==============2
getPercentInstance==============230%
getCurrencyInstance=============¥2.30
getCurrencyInstance(Locale.US)==$2.30

2. DecimalFormat

DecimalFormat是NumberFormat的一個具體子類,用于格式化十進制數(shù)字。

DecimalFormat能夠分析和格式化任意語言環(huán)境中的數(shù)字:

  • 包括對西方語言、阿拉伯語和印度語數(shù)字的支持。
  • 支持整數(shù) (123)、定點數(shù) (123.4)、科學記數(shù)法表示的數(shù) (1.23E4)、百分數(shù) (12%) 和金額 ($123)等。
  • 所有的內(nèi)容都可以本地化(本地化:使用本地的語言環(huán)境)。

需要注意的是:DecimalFormat是非線程安全的。

DecimalFormat支持手動配置模式使用模式符號

手動設(shè)置模式
  • setMaximumFractionDigits(int newValue):設(shè)置小數(shù)部分中允許的最大數(shù)字位數(shù)
  • setMinimumFractionDigits(int newValue):設(shè)置小數(shù)部分中允許的最小數(shù)字位數(shù),如果原數(shù)小數(shù)位數(shù)不夠的話,會補零。
  • setGroupingSize(int i):設(shè)置分組中一組的位數(shù)(整數(shù)部分,默認3個數(shù)字為一組)。
  • setGroupingUsed(boolean value):設(shè)置是否使用分組,true表示使用,false表示取消分組
  • setMaximumIntegerDigits(int newValue):設(shè)置整數(shù)部分允許的最大數(shù)字位數(shù)
  • setMinimumIntegerDigits(int newValue):設(shè)置整數(shù)部分允許的最小數(shù)字位數(shù)
使用模式符號串
符號位置是否本地化含義
0數(shù)字阿拉伯數(shù)字,位數(shù)不足時補0
#數(shù)字阿拉伯數(shù)字,位數(shù)不足時不管
.數(shù)字小數(shù)分隔符或貨幣小數(shù)分隔符
-數(shù)字減號
,數(shù)字分組分隔符
E數(shù)字分隔科學計數(shù)法中的尾數(shù)和指數(shù)
;子模式邊界分隔正數(shù)和負數(shù)子模式
分號前是正常模式,分號后是負數(shù)輸入的的輸出前綴
- 如果輸入為正數(shù),輸出:正常模式的結(jié)果
- 如果輸入為正數(shù),輸出:負數(shù)的前綴+正常模式的結(jié)果的絕對值
%前綴或后綴乘以100并顯示為百分數(shù)
\u2030前綴或后綴乘以1000并顯示為千分數(shù)
¤(\u00A4)前綴或后綴貨幣記號,由貨幣符號替換。
如果同時出現(xiàn)兩個該符號,則用國際貨幣符號替換。
如果出現(xiàn)在某個模式中,則使用貨幣小數(shù)分隔符,而不使用小數(shù)分隔符。
'前綴或后綴用于在前綴或后綴中為特殊字符加引號,使特殊符號變?yōu)槠胀ㄗ址ㄈ缫獎?chuàng)建單引號本身,請連續(xù)使用兩個單引號)。
例如:"'#'#" 將123格式化為 "#123"
使用方法
格式化

① 手動配置模式

    public static void main(String[] args) throws ParseException {
        DecimalFormat decimalFormat = new DecimalFormat();
        decimalFormat.setGroupingUsed(true);// 使用分組
        decimalFormat.setGroupingSize(4);// 分組中一組的位數(shù)
        decimalFormat.setMinimumIntegerDigits(2);// 整數(shù)部分最小位數(shù)
        decimalFormat.setMaximumIntegerDigits(8);// 整數(shù)部分最大位數(shù)
        decimalFormat.setMinimumFractionDigits(2);// 小數(shù)部分最小位數(shù)
        decimalFormat.setMaximumFractionDigits(4);// 小數(shù)部分最大位數(shù)

        System.out.println(decimalFormat.format(1.11));// 01.11

        System.out.println(decimalFormat.format(11111.222));// 1,1111.222

        System.out.println(decimalFormat.format(11111111111.222222222222));// 1111,1111.2222
    }

② 使用模式符號串

    public static void main(String[] args){
        double pi = 3.1415926;

        // 取整數(shù)部分,整數(shù)部分不足2位補0
        System.out.println(new DecimalFormat("00").format(pi));// 03

        // 取整數(shù)部分和10位小數(shù),整數(shù)部分不足2位補0,小數(shù)部分不足10位補0
        System.out.println(new DecimalFormat("00.0000000000").format(pi));// 03.1415926000

        // 取整數(shù)部分,整數(shù)部分不足2位不管
        System.out.println(new DecimalFormat("##").format(pi));// 3
        // ###和上面的##沒區(qū)別
        System.out.println(new DecimalFormat("###").format(pi));// 3

        // 取整數(shù)部分和10位小數(shù),整數(shù)部分不足2位不管,小數(shù)部分不足10位不管
        System.out.println(new DecimalFormat("##.##########").format(pi));// 3.1415926

        // 若輸入為非負數(shù),按;前面的正常模式輸出
        // 若輸入為負數(shù),按;后面的(負數(shù)輸入的輸出前綴+正常模式輸出的絕對值)輸出
        System.out.println(new DecimalFormat("#.##;前綴").format(3.1415926));// 3.14
        System.out.println(new DecimalFormat("#.##;前綴").format(-3.1415926));// 前綴3.14

        // 百分比方式計數(shù)(百分號在末位),取整數(shù)部分和2位小數(shù),小數(shù)部分不足2位不管
        System.out.println(new DecimalFormat("#.##%").format(pi));// 314.16%

        // 百分比方式計數(shù)(百分號在首位),取整數(shù)部分和2位小數(shù),小數(shù)部分不足2位不管
        System.out.println(new DecimalFormat("%#.##").format(pi));// %314.16

        // 千分比方式計數(shù)(千分號在末位),取整數(shù)部分和2位小數(shù),小數(shù)部分不足2位不管
        System.out.println(new DecimalFormat("#.##\u2030").format(pi));// 3141.59‰

        // 千分比方式計數(shù)(千分號在首位),取整數(shù)部分和2位小數(shù),小數(shù)部分不足2位不管
        System.out.println(new DecimalFormat("\u2030#.##").format(pi));// ‰3141.59

        //顯示為科學計數(shù)法,并取五位小數(shù)
        System.out.println(new DecimalFormat("#.#####E0").format(pi));// 3.14159E0

        //顯示為兩位整數(shù)的科學計數(shù)法,并取四位小數(shù)
        System.out.println(new DecimalFormat("00.####E0").format(pi));// 31.4159E-1

        //取整數(shù)部分,每三位以逗號進行分隔。
        System.out.println(new DecimalFormat(",###").format(pi));// 3

        // 添加貨幣符號在首位,如果同時出現(xiàn)兩個該符號,則用國際貨幣符號
        System.out.println(new DecimalFormat("¤#.##").format(pi));// ¥3.14
        System.out.println(new DecimalFormat("\u00A4#.##").format(pi));// ¥3.14
        System.out.println(new DecimalFormat("¤¤#.##").format(pi));// CNY3.14

        // 添加貨幣符號在末位,如果同時出現(xiàn)兩個該符號,則用國際貨幣符號
        System.out.println(new DecimalFormat("#.##¤").format(pi));// 3.14¥
        System.out.println(new DecimalFormat("#.##\u00A4").format(pi));// 3.14¥
        System.out.println(new DecimalFormat("#.##¤¤").format(pi));// 3.14CNY

        // 將特殊字符變?yōu)槠胀ㄗ址?
        System.out.println(new DecimalFormat("''#.##").format(pi));// '3.14
        System.out.println(new DecimalFormat("#.##''").format(pi));// 3.14'
        System.out.println(new DecimalFormat("'#'#.##").format(pi));// #3.14
        System.out.println(new DecimalFormat("#.##'#'").format(pi));// 3.14#

        //將格式嵌入文本
        System.out.println(new DecimalFormat("圓周率π:#.##").format(pi));// 圓周率π:3.14
    }
解析

解析也可以手動配置模式或者使用模式符號串,這里只以使用模式符號串方式舉例。

    public static void main(String[] args) throws ParseException {
        System.out.println(new DecimalFormat("圓周率π:#.##").parseObject("圓周率π:3.14"));// 3.14

        System.out.println(new DecimalFormat("#.##;前綴").parseObject("前綴3.14"));// -3.14

        System.out.println(new DecimalFormat("00.####E0").parseObject("31.4159E-1"));// 3.14159
    }

3. ChoiceFormat

ChoiceFormat將格式化運用到某個范圍的數(shù)。

ChoiceFormat與其他Format類的不同之處在于,它使用構(gòu)造函數(shù)放入方式(而不是使用getInstance樣式工廠方法)創(chuàng)建ChoiceFormat對象。

注意:limits數(shù)組需要升序排列(否則結(jié)果會出錯)

常用方法
nextDouble(double d)

查找大于d的最小double值,一般用在limits數(shù)組中,從而使limits數(shù)組形成一個右開區(qū)間數(shù)組

例如:limits = {0,1,ChoiceFormat.nextDouble(1)}

nextDouble(double d, boolean positive)
  1. positive=true,表示查找大于d的最小double值,一般用在limits數(shù)組中,從而使limits數(shù)組形成一個右開區(qū)間數(shù)組
  2. positive=false,表示查找小于d的最大double值,一般用在limits數(shù)組中,從而使limits數(shù)組形成一個左開區(qū)間數(shù)組
previousDouble(double d)

查找小于d的最大double值,一般用在limits數(shù)組中,從而使limits數(shù)組形成一個左開區(qū)間數(shù)組

public static void main(String[] args) {
	 System.out.println(ChoiceFormat.nextDouble(1));// 1.0000000000000002
	 System.out.println(ChoiceFormat.nextDouble(1,true));// 1.0000000000000002
	 System.out.println(ChoiceFormat.nextDouble(1,false));// 0.9999999999999999
	 System.out.println(ChoiceFormat.previousDouble(1));// 0.9999999999999999
}

上面三個方法的使用場景:

如果有個這樣的需求:

  1. 當number < 1時,取值0
  2. 當1 <= number <= 2時,取值1
  3. 當2 < number <= 3時,取值2
  4. 當number > 3時,取值3

代碼實現(xiàn):

    double[] limits = {0, 1, 2, 3};
    String[] formats = {"0","1","2","3"};
    ChoiceFormat format = new ChoiceFormat(limits, formats);

如果這樣的寫法,顯然不能滿足:

  • number = 2時,取值1
  • number = 3時,取值2

我們可以這么寫

public static void main(String[] args) {
    double[] limits = {0, 1, ChoiceFormat.nextDouble(2), ChoiceFormat.nextDouble(3)};
    String[] formats = {"0","1","2","3"};
    ChoiceFormat format = new ChoiceFormat(limits, formats);
    System.out.println(format.format(0));
    System.out.println(format.format(1));
    System.out.println(format.format(2));
    System.out.println(format.format(3));
    System.out.println(format.format(4));
}

能完全滿足上面的需求(number = 2時,取值1;number = 3時,取值2)。

ChoiceFormat(double[] limits, String[] formats)

構(gòu)造函數(shù)中接收一個formats數(shù)組和一個limits數(shù)組,這兩個數(shù)組必須具有相同數(shù)量的元素。

  • 第一個數(shù)組是原始雙精度數(shù)組,表示每個間隔的最小值(起始值)。
  • 第二個數(shù)組是一個字符串數(shù)組,代表與每個間隔關(guān)聯(lián)的名稱。

limits數(shù)組實際上是個區(qū)間,可開可閉,并且必須按升序排列,如果不按升序排列,格式化結(jié)果將會不正確,還可以使用\u221E(表示無窮大)。

匹配規(guī)則:limits[i] <= number <limits[i+1]

number表示使用format方法傳入的值,i表示limit數(shù)組中的索引。當且僅當上述公式成立時,number匹配i,如果不能匹配,則會根據(jù)number是太小還是太大,匹配limits數(shù)組的第一個索引或最后一個索引,然后使用匹配的limits數(shù)組中的索引,去formats數(shù)組中尋找相同索引的值。

public static void main(String[] args) {
	double[] limits = {0, 1, 2, 3, 4, 5, 6};
	String[] formats = { "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日" };
	ChoiceFormat format = new ChoiceFormat(limits, formats);
	System.out.println(format.format(-1));// 星期一
	System.out.println(format.format(0));// 星期一
	System.out.println(format.format(1));// 星期二
	System.out.println(format.format(2.5));// 星期三
	System.out.println(format.format(6.6));// 星期日
	System.out.println(format.format(7));// 星期日
	System.out.println(format.format(8));// 星期日
}
namber取值范圍匹配formats索引位置匹配值
number < 0匹配formats[0]星期一
0 <= number < 1匹配formats[0]星期一
1 <= number < 2匹配formats[1]星期二
2 <= number < 3匹配formats[2]星期三
3 <= number < 4匹配formats[3]星期四
4 <= number < 5匹配formats[4]星期五
5 <= number < 6匹配formats[5]星期六
numbe >= 6匹配formats[6]星期日
ChoiceFormat(String newPattern)

ChoiceFormat類的構(gòu)造方法也允許我們傳入一個模式字符串,format方法會根據(jù)這個模式字符串執(zhí)行格式化操作。

模式元素的格式:doubleNum [占位符] formatStr

占位符
占位符描述
#等于
<大于
\u2264(<=)大于等于

注意:比較運算符和平時實現(xiàn)相反的,因為該地方類似于變量在比較運算符的右邊(平時是在左邊)

模式字符串中的每個模式元素之間使用 | 分割,| 前后可以添加空格以美化代碼。

其實在ChoiceFormat(String newPattern)構(gòu)造方法的內(nèi)部,模式字符串還是被轉(zhuǎn)換為limits和formats兩個數(shù)組。

public static void main(String[] args) {
	ChoiceFormat choice=new ChoiceFormat("1 # A | 2 < B | 3 \u2264 C | 5 # D");
	System.out.println(choice.format(0));
	System.out.println(choice.format(1));
	System.out.println(choice.format(2));
	System.out.println(choice.format(3));
	System.out.println(choice.format(4));
	System.out.println(choice.format(5));
	System.out.println(choice.format(6));
}

字符串格式化

1. MessageFormat

MessageFormat提供與語言環(huán)境無關(guān)的生成連接消息的方式。

通常用MessageFormat的靜態(tài)方法format,該方法接收一個字符串的模式和一組對象(對象數(shù)組),按照模式形式將格式化的對象插入到模式中,然后返回字符串結(jié)果。

static String format(String pattern, Object … arguments)

  • pattern:字符串模式
  • arguments:對象數(shù)組
模式元素

模式元素格式:ArgumentIndex[,FormatType[,FormatStyle]]

  • ArgumentIndex:入?yún)⑺饕恢茫◤?開始)
  • FormatType:格式化類型
  • FormatStyle:格式化樣式
格式化類型
  • date:調(diào)用DateFormat進行格式化
  • time:調(diào)用DateFormat進行格式化
  • number:調(diào)用NumberFormat進行格式化
  • choice:調(diào)用ChoiceFormat進行格式化
格式化樣式
  • short
  • medium
  • long
  • full
  • integer
  • currency
  • percent
  • SubformatPattern(子模式)
使用示例
public static void main(String[] args) {
    Date date = new Date();
    System.out.println(MessageFormat.format("{0},{1},{2}", date, date, 1.11));
    System.out.println(MessageFormat.format("{0,date},{1,time},{2,number}", date, date, 1.11));
    System.out.println(MessageFormat.format("{0,date,MEDIUM},{1,time,MEDIUM},{2,number,integer},{3,number,#.#}", date, date, 1.11, 2.22));
}

輸出:

22-9-5 下午10:47,22-9-5 下午10:47,1.11
2022-9-5,22:47:39,1.11
2022-9-5,22:47:39,1,2.2

2. String.format

String有兩個格式化方法

  • format(String format, Object… args)
  • format(Locale l, String format, Object… args)
format參數(shù)

format參數(shù)格式:%[index$][flags][width][.precision]conversion

模塊
模塊是否必須描述
index$參數(shù)在參數(shù)列表中的位置,十進制整數(shù)。
第一個參數(shù)由 "1$" 引用,第二個參數(shù)由 "2$"引用
flags標識,用來控制輸出格式
width輸出的最小長度,正整數(shù)
.precision精度,限定輸出字符數(shù)
conversion轉(zhuǎn)換符,指定如何格式化參數(shù)
標識
標識描述
-在最小寬度內(nèi)左對齊,不可與0標識一起使用
0若內(nèi)容長度不足最小寬度,則在左邊用0來填充
#對8進制和16進制,8進制前添加一個0,16進制前添加0x
+結(jié)果總包含一個+或-號
空格正數(shù)前加空格,負數(shù)前加-號
,只用與十進制,每3位數(shù)字間用,分隔
(若結(jié)果為負數(shù),則用括號括住,且不顯示符號
轉(zhuǎn)換符
s字符串類型
c字符類型
b布爾類型,只要實參為非false的布爾類型,均格式化為字符串true,否則為字符串false
d整數(shù)類型(十進制)
x整數(shù)類型(八進制)
o整數(shù)類型(十六進制)
f浮點數(shù)型(十進制)。顯示9位有效數(shù)字,且會進行四舍五入。如99.99
a浮點數(shù)型(十六進制)
g浮點數(shù)型(比%f,%a長度短些,顯示6位有效數(shù)字,且會進行四舍五入)
e指數(shù)類型。如9.38e+5
h散列碼
%百分比
tx日期與時間類型(x代表不同的日期與時間轉(zhuǎn)換符)
n換行符

舉例:

public static void main(String[] args) {
    System.out.println(String.format("%2$06.2f======%1$d", 2, 11.1111));// 011.11======2
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring源碼解析容器初始化構(gòu)造方法

    Spring源碼解析容器初始化構(gòu)造方法

    這篇文章主要介紹了Spring源碼解析容器初始化構(gòu)造方法,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • Java可重入鎖的實現(xiàn)示例

    Java可重入鎖的實現(xiàn)示例

    在java中,可重入鎖分為兩種,即synchronized鎖以及ReentrantLock及其實現(xiàn),文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • Java 輕松入門了解File類的使用

    Java 輕松入門了解File類的使用

    Java文件類以抽象的方式代表文件名和目錄路徑名。該類主要用于文件和目錄的創(chuàng)建、文件的查找和文件的刪除等。File對象代表磁盤中實際存在的文件和目錄。通過以下構(gòu)造方法創(chuàng)建一個File對象
    2022-03-03
  • java數(shù)據(jù)庫連接池和數(shù)據(jù)庫連接示例

    java數(shù)據(jù)庫連接池和數(shù)據(jù)庫連接示例

    這篇文章主要介紹了java數(shù)據(jù)庫連接池和數(shù)據(jù)庫連接示例,需要的朋友可以參考下
    2014-05-05
  • Java中List集合的遍歷實例詳解

    Java中List集合的遍歷實例詳解

    這篇文章主要介紹了Java中List集合遍歷實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • JAVA中重寫(Override)與重載(Overload)的相關(guān)示例

    JAVA中重寫(Override)與重載(Overload)的相關(guān)示例

    這篇文章主要給大家介紹了關(guān)于JAVA中重寫(Override)與重載(Overload)的相關(guān)示例,重寫(override)和重載(overload)是兩種不同的方法重用技術(shù),文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • @Value設(shè)置默認值后,獲取不到配置值的原因分析

    @Value設(shè)置默認值后,獲取不到配置值的原因分析

    這篇文章主要介紹了@Value設(shè)置默認值后,獲取不到配置值的原因,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • SpringMVC前后端傳值的幾種實現(xiàn)方式

    SpringMVC前后端傳值的幾種實現(xiàn)方式

    本文主要介紹了SpringMVC前后端傳值的方式實現(xiàn),包括使用HttpServletRequest、HttpSession、Model和ModelAndView等方法,具有一定的參考價值,感興趣的可以了解一下
    2025-02-02
  • JAVA 內(nèi)部類詳解及實例

    JAVA 內(nèi)部類詳解及實例

    這篇文章主要介紹了JAVA 內(nèi)部類詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • 解決Sentinel鏈路模式規(guī)則無效問題

    解決Sentinel鏈路模式規(guī)則無效問題

    本文介紹了如何在Spring Cloud Alibaba項目中使用Sentinel鏈路流控規(guī)則,并解決規(guī)則不生效的問題,通過關(guān)閉Sentinel過濾器,可以避免重復統(tǒng)計請求
    2025-01-01

最新評論

勐海县| 开江县| 正宁县| 西乌| 巴林右旗| 鹿泉市| 阿克苏市| 临高县| 大埔县| 巫溪县| 石狮市| 四子王旗| 和田市| 辉县市| 寻甸| 辰溪县| 廊坊市| 林芝县| 滦平县| 罗定市| 阜宁县| 铜鼓县| 儋州市| 马边| 五寨县| 深泽县| 邢台县| 琼中| 鹤岗市| 宁波市| 乐清市| 双辽市| 醴陵市| 缙云县| 盐津县| 邹城市| 富宁县| 景德镇市| 镇江市| 刚察县| 宁津县|