您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)JavaStringBuilder類(lèi)原理及常用方法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
StringBuilder類(lèi)的由來(lái)
由于String類(lèi)的對(duì)象內(nèi)容不可改變(底層是一個(gè)被final修飾的數(shù)組),所以每當(dāng)我們進(jìn)行字符串拼接時(shí),總是會(huì)在內(nèi)存中創(chuàng)建一個(gè)新的對(duì)象。如果對(duì)字符串進(jìn)行拼接操作,每次拼接,都會(huì)構(gòu)建一個(gè)新的String對(duì)象,既耗時(shí),又浪費(fèi)空間。為了解決這一問(wèn)題,我們可以使用java.lang.StringBuilder類(lèi)。
StringBuilder的簡(jiǎn)介
查閱 java.lang.StringBuilder 的API,StringBuilder又稱(chēng)為可變字符序列,它是一個(gè)類(lèi)似于 String 的字符串緩沖區(qū),通過(guò)某些方法調(diào)用可以改變?cè)撔蛄械拈L(zhǎng)度和內(nèi)容。原來(lái)StringBuilder是個(gè)字符串的緩沖區(qū),即它是一個(gè)容器,容器中可以裝很多字符串。并且能夠?qū)ζ渲械淖址M(jìn)行各種操作。它的內(nèi)部擁有一個(gè)數(shù)組用來(lái)存放字符串內(nèi)容,進(jìn)行字符串拼接時(shí),直接在數(shù)組中加入新內(nèi)容。StringBuilder會(huì)自動(dòng)維護(hù)數(shù)組的擴(kuò)容(默認(rèn)16字符空間,超過(guò)自動(dòng)擴(kuò)充)。
常用構(gòu)造方法有2個(gè):
public StringBuilder():構(gòu)造一個(gè)空的StringBuilder容器。
public StringBuilder(String str):構(gòu)造一個(gè)StringBuilder容器,并將字符串添加進(jìn)去。
StringBuilder常用的方法有2個(gè):
public StringBuilder append(...):添加任意類(lèi)型數(shù)據(jù)的字符串形式,并返回當(dāng)前對(duì)象自身。任何數(shù)據(jù)作為參數(shù)都會(huì)將對(duì)應(yīng)的字符串內(nèi)容添加到StringBuilder中。
package demo06;public class Demo01StringBuilder { public static void main(String[] args) { //創(chuàng)建StringBuilder對(duì)象 StringBuilder bu = new StringBuilder(); //使用append方法往StringBuilder中添加數(shù)據(jù),可以添加任意類(lèi)型的數(shù)據(jù) /* 鏈?zhǔn)骄幊?方法返回值是一個(gè)對(duì)象,可以繼續(xù)調(diào)用方法 */ bu.append("abc").append(1).append(true).append(8.8).append('中'); System.out.println(bu);//abc1true8.8中 }}
public String toString()`:將當(dāng)前StringBuilder對(duì)象轉(zhuǎn)換為String對(duì)象。
package demo06;public class Demo02StringBuilder { /* StringBuilder和String可以相互轉(zhuǎn)換: String->StringBuilder:可以使用StringBuilder的構(gòu)造方法 StringBuilder(String str) 構(gòu)造一個(gè)字符串生成器,并初始化為指定的字符串內(nèi)容。 StringBuilder->String:可以使用StringBuilder中的toString方法 public String toString():將當(dāng)前StringBuilder對(duì)象轉(zhuǎn)換為String對(duì)象。 */ public static void main(String[] args) { //String->StringBuilder String str = "hello"; StringBuilder bu = new StringBuilder(str); //往StringBuilder中添加數(shù)據(jù) bu.append("world"); System.out.println("StringBuilder:" + bu); //StringBuilder->String String s = bu.toString(); System.out.println("字符串:" + s); }}
代碼執(zhí)行后的結(jié)果
看完上述內(nèi)容,你們對(duì)JavaStringBuilder類(lèi)原理及常用方法有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(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)容。