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

JAVA字符串占位符使用方法實(shí)例

 更新時(shí)間:2022年11月28日 15:38:14   作者:曠野歷程  
今天同事又問(wèn)起類似符串占位符使用的功能,所以下面這篇文章主要給大家介紹了關(guān)于JAVA字符串占位符使用的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

使用 replace 函數(shù)動(dòng)態(tài)填充字符串

String str="Hello {0},我是 {1},今年{2}歲";
str = str.replace("{0}", "CSDN");
str = str.replace("{1}", "小豬");
str = str.replace("{2}", "12");
System.out.println(str);

使用 String.format() 占位符替換

作用:使用指定的格式字符串和參數(shù)返回一個(gè)格式化字符串。

String str=String.format("Hello %s,我是 %s,今年 %s 歲", "CSDN","小豬","12");
System.out.println(str);

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

String.format 使用

1、占位符

占位符格式:

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

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

  • %:占位符的其實(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ù)類型格式化使用,設(shè)置保留小數(shù)點(diǎn)后多少位。
  • 轉(zhuǎn)換符:用于指定格式化的樣式,和限制對(duì)應(yīng)入?yún)⒌臄?shù)據(jù)類型。

2、對(duì)字符或字符串操作

占位符格式:

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

示例1

String str = "CSDN";
String result = String.format("%1$7s", str);
System.out.println("Hello" + result);
// 簡(jiǎn)化
result = String.format("%7s", str);
System.out.println("Hello" + result);
 
// 結(jié)果:
Hello   CSDN
Hello   CSDN

示例2

String str = "CSDN";
String result = String.format("%1$-7s", str);
System.out.println("Hello" + result + ",");
// 簡(jiǎn)化
result = String.format("%-7s", str);
System.out.println("Hello" + result + ",");
 
// 結(jié)果:
HelloCSDN   ,
HelloCSDN   ,

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

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

可用轉(zhuǎn)換符

  • s,字符串類型。
  • c,字符類型,實(shí)參必須為char或int、short等可轉(zhuǎn)換為char類型的數(shù)據(jù)類型,否則拋IllegalFormatConversionException異常。
  • b,布爾類型,只要實(shí)參為非false的布爾類型,均格式化為字符串true,否則為字符串false。
  • n,平臺(tái) 獨(dú)立的換行符(與通過(guò) System.getProperty("line.separator") 是一樣的)

3、對(duì)整數(shù)操作

占位符格式

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

示例1

將1顯示為0001

int num = 1;
String str = String.format("%04d", num);
System.out.println(str);
 
// 結(jié)果:
0001

示例2

將-1000顯示為(1,000)

int num = -1000;
String str = String.format("%(,d", num);
System.out.println(str);
 
// 結(jié)果:
(1,000)

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

4、對(duì)浮點(diǎn)數(shù)操作

占位符格式:

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

示例:

double num = 123.4567899;
System.out.print(String.format("%f %n", num)); 
System.out.print(String.format("%a %n", num));
System.out.print(String.format("%g %n", num));
 
// 結(jié)果
123.456790 
0x1.edd3c0bb46929p6 
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,布爾類型,只要實(shí)參為非false的布爾類型,均格式化為字符串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ù)類型。如9.38e+5。
  • g,浮點(diǎn)數(shù)型(比%f,%a長(zhǎng)度短些,顯示6位有效數(shù)字,且會(huì)進(jìn)行四舍五入)

5、對(duì)日期時(shí)間操作

占位符格式:

%[index$]t轉(zhuǎn)換符

示例1

String str = String.format("%tF", new Date());
System.out.println(str);
 
// 結(jié)果
2020-12-15

可用轉(zhuǎn)換符

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

  • c,星期六 十月 27 14:21:20 CST 2007
  • F,2007-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ò)的豪秒

常用的類型關(guān)系:

轉(zhuǎn)換符詳細(xì)說(shuō)明示例
%s字符串類型“喜歡請(qǐng)收藏”
%c字符類型‘m’
%b布爾類型true
%d整數(shù)類型(十進(jìn)制)88
%x整數(shù)類型(十六進(jìn)制)FF
%o整數(shù)類型(八進(jìn)制)77
%f浮點(diǎn)類型8.888
%a十六進(jìn)制浮點(diǎn)類型FF.35AE
%e指數(shù)類型9.38e+5
%g通用浮點(diǎn)類型(f和e類型中較短的)不舉例(基本用不到)
%h散列碼不舉例(基本用不到)
%%百分比類型%(%特殊字符%%才能顯示%)
%n換行符不舉例(基本用不到)
%tx日期與時(shí)間類型(x代表不同的日期與時(shí)間轉(zhuǎn)換符)不舉例(基本用不到)

補(bǔ)充:Java替換字符串中的占位符

在開(kāi)發(fā)中,會(huì)有動(dòng)態(tài)配置字符串其中的某些字符,如何使用字符中的占位符,并且在代碼動(dòng)態(tài)替換占位符實(shí)現(xiàn)動(dòng)態(tài)配置字符串!

1.定義字符串時(shí),再string文件添加字符串:

注意!記得要在字符文件中加上這些:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> 
<string name="text1">i am %1$d years old, i am a %2$s</string>

屬性值定義如下:

%n$m[d/f/s] 表示 第n個(gè)參數(shù),前面有m個(gè)空格(0m表示有m個(gè)0,浮點(diǎn)數(shù)k.m,表示小數(shù)點(diǎn)前保留k位,小數(shù)點(diǎn)后保留m位),d為整數(shù),f為浮點(diǎn)數(shù),s為字符串。

2.在代碼中使用:

String text1 = Context.getResources().getString(R.string.text1);
//注意,Andorid中的Context.getString()與Context.getResources().getString()是一樣的,詳細(xì)可看Context源碼0.0
String text2 = String.format(text1,25,"engineer");//"i am 25 years old, i am a engineer"

使用String.format()方法,第一個(gè)參數(shù)為字符串,后面依次為替換占位符的字符串?!?/p>

總結(jié)

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

相關(guān)文章

  • java數(shù)據(jù)結(jié)構(gòu)之搜索二叉樹(shù)

    java數(shù)據(jù)結(jié)構(gòu)之搜索二叉樹(shù)

    這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)之搜索二叉樹(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • JAVA中的字段校驗(yàn)(validation)

    JAVA中的字段校驗(yàn)(validation)

    這篇文章主要介紹了JAVA中的字段校驗(yàn)(validation)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java創(chuàng)建型設(shè)計(jì)模式之抽象工廠模式(Abstract?Factory)

    Java創(chuàng)建型設(shè)計(jì)模式之抽象工廠模式(Abstract?Factory)

    當(dāng)系統(tǒng)所提供的工廠所需生產(chǎn)的具體產(chǎn)品并不是一個(gè)簡(jiǎn)單的對(duì)象,而是多個(gè)位于不同產(chǎn)品等級(jí)結(jié)構(gòu)中屬于不同類型的具體產(chǎn)品時(shí)需要使用抽象工廠模式,抽象工廠模式是所有形式的工廠模式中最為抽象和最具一般性的一種形態(tài)
    2022-09-09
  • mybatis快速上手并運(yùn)行程序

    mybatis快速上手并運(yùn)行程序

    MyBatis 是一款優(yōu)秀的持久層框架,它支持自定義 SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。MyBatis 免除了幾乎所有的 JDBC 代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis 可以通過(guò)簡(jiǎn)單的 XML 或注解來(lái)配置和映射原始類型、接口和 Java POJO為數(shù)據(jù)庫(kù)中的記錄
    2022-01-01
  • Spring超詳細(xì)講解事務(wù)

    Spring超詳細(xì)講解事務(wù)

    Spring事務(wù)的本質(zhì)就是對(duì)數(shù)據(jù)庫(kù)事務(wù)的支持,沒(méi)有數(shù)據(jù)庫(kù)事務(wù),Spring是無(wú)法提供事務(wù)功能的。Spring只提供統(tǒng)一的事務(wù)管理接口,具體實(shí)現(xiàn)都是由數(shù)據(jù)庫(kù)自己實(shí)現(xiàn)的,Spring會(huì)在事務(wù)開(kāi)始時(shí),根據(jù)當(dāng)前設(shè)置的隔離級(jí)別,調(diào)整數(shù)據(jù)庫(kù)的隔離級(jí)別,由此保持一致
    2022-07-07
  • Java面向?qū)ο笾^承的概念詳解

    Java面向?qū)ο笾^承的概念詳解

    這篇文章主要介紹了Java面向?qū)ο笾^承的概念詳解,Java是一種面向?qū)ο蟮木幊陶Z(yǔ)言,繼承是實(shí)現(xiàn)面向?qū)ο缶幊痰幕A(chǔ)之一。通過(guò)繼承,我們可以使代碼更具可讀性、可重用性和可維護(hù)性,從而提高程序的效率和可靠性,需要的朋友可以參考下
    2023-04-04
  • Java 并發(fā)編程ArrayBlockingQueue的實(shí)現(xiàn)

    Java 并發(fā)編程ArrayBlockingQueue的實(shí)現(xiàn)

    這篇文章主要介紹了Java 并發(fā)編程ArrayBlockingQueue的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • SpringBoot項(xiàng)目集成MinIO全過(guò)程

    SpringBoot項(xiàng)目集成MinIO全過(guò)程

    這篇文章主要介紹了SpringBoot項(xiàng)目集成MinIO全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • SpringBoot+Vue項(xiàng)目部署上線的實(shí)現(xiàn)示例

    SpringBoot+Vue項(xiàng)目部署上線的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot+Vue項(xiàng)目部署上線的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-02-02
  • Java中BufferedReader與Scanner讀入的區(qū)別詳解

    Java中BufferedReader與Scanner讀入的區(qū)別詳解

    這篇文章主要介紹了Java中BufferedReader與Scanner讀入的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評(píng)論

精河县| 固原市| 寿宁县| 包头市| 阳新县| 嘉义县| 大兴区| 阿克| 邯郸市| 阜新市| 庐江县| 江西省| 宣汉县| 垫江县| 惠东县| 郁南县| 宜黄县| 富阳市| 桓台县| 平舆县| 庆元县| 沂水县| 汕尾市| 星子县| 酉阳| 廉江市| 拜泉县| 新和县| 宁乡县| 辽中县| 南丹县| 靖江市| 宕昌县| 肇庆市| 行唐县| 双桥区| 阿尔山市| 万全县| 犍为县| 东丰县| 蒲江县|