Java常用占位符方法簡(jiǎn)單代碼實(shí)例
Java中占位符指的是在字符串中預(yù)留一些特殊標(biāo)記,用于將變量的值動(dòng)態(tài)的插入到字符串中
1、%s : 字符串占位符,用于插入字符串類(lèi)型的值
String name = "Kristen";
String str = String.format("Hello,%s!",name);
System.out.println(str);
//輸出"Hello,Kristen!"2、%d : 整數(shù)占位符,用于插入整數(shù)類(lèi)型的值
int age = 20;
String str = String.format("年齡:%d!");
System.out.println(str);
//輸出"年齡:20!"3、%f : 浮點(diǎn)占位符,用于插入浮點(diǎn)類(lèi)型的值
double height = 1.72;
String str = String.format("身高:%f!");
System.out.println(str);
//輸出"身高:1.72!"4、%b : 布爾值占位符,用于插入布爾值類(lèi)型的值
boolean isTrue = true;
String str = String.format("布爾值:%s!",isTrue);
System.out.println(str);
//輸出"布爾值:true!"
在這個(gè)例子中,%s占位符被用于將布爾值轉(zhuǎn)換為字符串并插入到格式化字符串中,
如果需要將布爾值格式化為其他特定的字符串表示形式,
可以使用條件語(yǔ)句或三元運(yùn)算符來(lái)實(shí)現(xiàn)自定義的布爾值轉(zhuǎn)換邏輯,
然后將結(jié)果作為字符串插入到格式化字符串中附:巧用占位符
1、產(chǎn)品兩個(gè)需求:
(1)某天產(chǎn)品來(lái)了個(gè)需求需要將短信變更不需要帶xxx 先生/女士,內(nèi)容變更為您好!您的尾號(hào)(567)的銀行卡,余額是(10000)元
(2)某某天產(chǎn)品又來(lái)了個(gè)需求將短信內(nèi)容變更為您好!您的余額是(10000)元的且尾號(hào)(567)的銀行卡正在被消費(fèi)
2、縱使當(dāng)時(shí)心里有千萬(wàn)只草泥馬在奔騰;奔騰過(guò)后還是得老老實(shí)實(shí)的改N個(gè)系統(tǒng)的N處代碼,測(cè)試,發(fā)布上線;
(1)針對(duì)1中需求(1)需要將短信模版需要變更為 您好!您的尾號(hào)(%s)的銀行卡,余額是(%s)元 而且短信變量變更為 567;10000
(2)針對(duì)1中需求(2)需要將短信模版需要變更為 您好!您的余額是(%s)元的且尾號(hào)(%s)的銀行卡正在被消費(fèi) 而且短信變量變更為 10000;567
3、有沒(méi)有更好的解決方案那?在針對(duì)需求變更總結(jié)后發(fā)現(xiàn),無(wú)非是在模版中改變變量的位置以及將變量的個(gè)數(shù)在減少;突然聯(lián)想到占位符{n}
4、模版調(diào)整為{0} 先生/女士,您好!您的尾號(hào)({1})的銀行卡,余額是({2})元
5、程序?qū)崿F(xiàn)
public static void main(String[] args) {
String mod = "{0} 先生/女士,您好!您的尾號(hào)({1})的銀行卡,余額是({2})元";
String variable = "張三;567;10000";
String context = MessageFormat.format(mod, variable.split(";"));
System.out.println(context);
}
6、如何應(yīng)對(duì)產(chǎn)品的需求
1中產(chǎn)品提到的需求(1),只需將模版調(diào)整為 您好!您的尾號(hào)({1})的銀行卡,余額是({2})元
1中產(chǎn)品提到的需求(2),只需將模版調(diào)整為 您好!您的余額是({2})元的且尾號(hào)({1})的銀行卡正在被消費(fèi)
注:一般模版都會(huì)在數(shù)據(jù)庫(kù)和緩存中存放,只需要更換一下數(shù)據(jù)庫(kù)和緩存中的模版就OK了。
總結(jié)
到此這篇關(guān)于Java常用占位符方法的文章就介紹到這了,更多相關(guān)Java常用占位符方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springcloud項(xiàng)目占用內(nèi)存好幾個(gè)G導(dǎo)致服務(wù)器崩潰的問(wèn)題
這篇文章主要介紹了springcloud項(xiàng)目占用內(nèi)存好幾個(gè)G導(dǎo)致服務(wù)器崩潰的問(wèn)題,本文給大家分享解決方案供大家參考,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
Java中的線程池ThreadPoolExecutor細(xì)致講解
這篇文章主要介紹了Java中的線程池ThreadPoolExecutor細(xì)致講解,線程池是一種基于池化思想管理線程的工具,經(jīng)常出現(xiàn)在多線程服務(wù)器中,如MySQL,線程過(guò)多會(huì)帶來(lái)額外的開(kāi)銷(xiāo),其中包括創(chuàng)建銷(xiāo)毀線程的開(kāi)銷(xiāo)、調(diào)度線程的開(kāi)銷(xiāo)等等,需要的朋友可以參考下2023-11-11
RestTemplate接口調(diào)用神器常見(jiàn)用法匯總
這篇文章主要介紹了RestTemplate接口調(diào)用神器常見(jiàn)用法匯總,通過(guò)案例代碼詳細(xì)介紹RestTemplate接口調(diào)用神器常見(jiàn)用法,需要的朋友可以參考下2022-07-07
解讀SpringBoot為什么要用DeferredImportSelector
這篇文章主要介紹了SpringBoot為什么要用DeferredImportSelector的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
JavaSE API實(shí)現(xiàn)生成隨機(jī)數(shù)的2種方法(Random類(lèi)和Math類(lèi)的Random方法)
本文主要介紹了JavaSE API實(shí)現(xiàn)生成隨機(jī)數(shù)的2種方法,主要包括Random類(lèi)和Math類(lèi)的random方法都可以用來(lái)生成隨機(jī)數(shù),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10

