一篇文章帶你搞定StringBuffer類(lèi)和常用方法
一、StringBuffer類(lèi)
1.我們知道字符串是常量,一旦被創(chuàng)建后,它的內(nèi)容和長(zhǎng)度值是不能夠改變的,當(dāng)需要對(duì)一個(gè)字符串進(jìn)行修改,只可以再創(chuàng)建,這樣就有點(diǎn)麻煩,可以使用StringBuffer類(lèi)來(lái)解決這個(gè)問(wèn)題,修改它的內(nèi)容和長(zhǎng)度。它是一個(gè)容器,可以添加和刪除,此時(shí)不會(huì)產(chǎn)生新的StringBuffer對(duì)象。
2.創(chuàng)建StringBuffer對(duì)象方法
StringBuffer( ):構(gòu)造一個(gè)空的緩沖字符串,它是沒(méi)有字符,初始容量為16個(gè)字符。
StringBuffer(int length):構(gòu)造一個(gè)長(zhǎng)度為length的空的緩沖字符串
StringBuffer(String str):構(gòu)造一個(gè)緩沖字符串,它初始化內(nèi)容為給定的字符串str,然后加上16個(gè)字符的初始容量。
二、StringBuffer常用方法
1.stringBuffer常用方法以下表示:
StringBuffer append(char c):添加參數(shù)到StringBuffer對(duì)象中。
StringBuffer insert(int index,String str):從字符串中index中插入字符串,形成新的字符串。
StringBuffer deleteCharAt(int index):刪除指定位置的字符,把剩下的內(nèi)容形成一個(gè)新的字符串。
StringBuffer delete(int start,int end):刪除這個(gè)序列的字符串中的字符。
StringBuffer replace(int start,int end,String str):在StringBuffer對(duì)象中替換指定字符。
StringBuffer toString():把StringBuffer對(duì)象轉(zhuǎn)換成String對(duì)象。
StringBuffer reserse():StringBuffer對(duì)象中的內(nèi)容反轉(zhuǎn),形成新的字符串。
void setCharAt(int index,char c):修改指定位置index的字符串
2.StringBuffer常用方法例子
- public class p49 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- StringBuilder sb = new StringBuilder();
- sb.append("java");
- System.out.println("添加字符串到末尾:"+sb);
- sb.insert(0 , "hello ");
- System.out.println("在指定的位置插入字符串:"+sb);
- sb.replace(5, 6, ",");
- System.out.println("替換指定位置的字符串:"+sb);
- sb.delete(5, 6);
- System.out.println("刪除指定位置的字符:"+sb);
- sb.reverse();
- System.out.println("字符串翻轉(zhuǎn):"+sb);
- System.out.println("字符串的長(zhǎng)度為:"+sb.length());
- }
- }
運(yùn)行的結(jié)果是:
三、String類(lèi)和StringBuffer類(lèi)區(qū)別
1.String類(lèi)是字符串常量,被創(chuàng)建后它的內(nèi)容和長(zhǎng)度是不可以改變的。而StringBuffer類(lèi)是字符的容量,它的內(nèi)容和長(zhǎng)度是可以發(fā)生改變的。
2.如果是表示數(shù)據(jù)類(lèi)型的就用String類(lèi),需要對(duì)字符串的增刪改的就可以使用StringBuffer類(lèi)。
3.String類(lèi)有Object類(lèi)的equal()方法,StringBuffer類(lèi)是沒(méi)有這個(gè)equal()方法。我們通過(guò)下面的例子來(lái)看一下。
- public class p51 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //String類(lèi)
- String str1="hellojava";
- String str2="hellojava";
- if(str1.equals(str2)){
- System.out.println("String類(lèi)結(jié)果:"+true);
- }else{
- System.out.println("String類(lèi)結(jié)果:"+false);
- }
- //StringBuffer類(lèi)
- StringBuffer sb1=new StringBuffer("hello");
- StringBuffer sb2=new StringBuffer("hello");
- if(sb1.equals(sb2)){
- System.out.println("StringBuffer類(lèi)結(jié)果:"+true);
- }else{
- System.out.println("StringBuffer類(lèi)結(jié)果:"+false);
- }
- }
- }
運(yùn)行的結(jié)果是:
4.String類(lèi)字符串的連接可以使用”+”,而StringBuffer類(lèi)不可以使用這個(gè)”+”。我們通過(guò)下面的這個(gè)例子看一下:
- public class p52 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- String str1="hello";
- String str2="java";
- String str3=str1+str2;
- System.out.println("字符串str1和str2的拼接為:"+str3);
- //輸出的結(jié)果是字符串str1和str2的拼接為:hellojava
- StringBuffer sb1=new StringBuffer("hello");
- StringBuffer sb2=new StringBuffer("java");
- StringBuffer sb3=sb1+sb2;//出現(xiàn)報(bào)錯(cuò)
- }
- }
運(yùn)行的結(jié)果是:

四、總結(jié)
本文主要介紹了StringBuffer類(lèi)、StringBuffer常用方法、String類(lèi)和StringBuffer類(lèi)區(qū)別。
StringBuffer類(lèi)是字符的容量,它的內(nèi)容和長(zhǎng)度是可以發(fā)生改變的,介紹了它的創(chuàng)建StringBuffer對(duì)象方法。
StringBuffer常用方法通過(guò)例子幫助理解對(duì)字符串的操作。了解String類(lèi)和StringBuffer類(lèi)區(qū)別在程序開(kāi)發(fā)中,知道這些的區(qū)別和用法。希望大家通過(guò)本文的學(xué)習(xí),對(duì)你有所幫助!