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

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

 更新時(shí)間:2022年11月28日 15:38:14   作者:曠野歷程  
今天同事又問(wèn)起類(lèi)似符串占位符使用的功能,所以下面這篇文章主要給大家介紹了關(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ù)類(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)型。

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,字符串類(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") 是一樣的)

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,布爾類(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")獲取

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,布爾類(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)行四舍五入)

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)稱(chēng)
  • B, 月份全稱(chēng)
  • a, 星期簡(jiǎn)稱(chēng)
  • A, 星期全稱(chēng)
  • 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ò)的豪秒

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

轉(zhuǎn)換符詳細(xì)說(shuō)明示例
%s字符串類(lèi)型“喜歡請(qǐng)收藏”
%c字符類(lèi)型‘m’
%b布爾類(lèi)型true
%d整數(shù)類(lèi)型(十進(jìn)制)88
%x整數(shù)類(lèi)型(十六進(jìn)制)FF
%o整數(shù)類(lèi)型(八進(jìn)制)77
%f浮點(diǎn)類(lèi)型8.888
%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)換符)不舉例(基本用不到)

補(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)文章

最新評(píng)論