您好,登錄后才能下訂單哦!
java拼接字符串有幾種方式?針對(duì)這個(gè)問(wèn)題,今天小編總結(jié)這篇有關(guān)字符串拼接的文章,可供感興趣的小伙伴們參考借鑒,希望對(duì)大家有所幫助。
1、 + 方式
String str1="hello";
String str2="world";
String str=str1+str2;
concat方式
當(dāng)兩個(gè)量都為String類(lèi)型且值不為null時(shí),可以用concat方式
String a="a";
String b="b";
String c= a.concat(b);
理論上,此時(shí)拼接效率應(yīng)該最高,因?yàn)橐呀?jīng)假定兩個(gè)量都為字符串,做底層優(yōu)化不需要額外判斷或轉(zhuǎn)換,而其他方式無(wú)論如何優(yōu)化,都要先走到這一步。
append方式
當(dāng)需要拼接至少三個(gè)量的時(shí)候,可以考慮使用StringBuffer#append()以避免臨時(shí)字符串的產(chǎn)生
StringBuffer buf=new StringBuffer()
buf.append("a");
if(someCondition){
buf.append("b");
}
buf.append("c");
String d=buf.toString();
當(dāng)a,b,c拼接起來(lái)會(huì)很長(zhǎng)時(shí),可以給在構(gòu)造器中傳入一個(gè)合適的預(yù)估容量以減少因擴(kuò)展緩沖空間而帶來(lái)的性能開(kāi)銷(xiāo)。
StringBuffer buf=new StringBuffer(a.length()+b.length()+c.length());
JDK對(duì)外提供的一些涉及可append CharSequence的參數(shù)或返回值類(lèi)型往往是StringBuffer類(lèi)型,畢竟安全第一,而StringBuffer大多數(shù)情況(包括append操作)線程安全。
若不會(huì)出現(xiàn)多線程同時(shí)對(duì)一實(shí)例并發(fā)進(jìn)行append操作,建議使用非線程安全的StringBuilder以獲得更好性能
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。