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

淺析Java中StringBuffer和StringBuilder的使用

 更新時(shí)間:2023年04月23日 14:44:50   作者:無聲編碼器  
當(dāng)對(duì)字符串進(jìn)行修改的時(shí)候,需要使用 StringBuffer 和 StringBuilder 類。本文就來和大家簡單聊聊這二者的使用與區(qū)別吧,希望對(duì)大家有所幫助

當(dāng)對(duì)字符串進(jìn)行修改的時(shí)候,需要使用 StringBuffer 和 StringBuilder 類。和 String 類不同的是,StringBuffer 和 StringBuilder 類的對(duì)象能夠被多次的修改,并且不產(chǎn)生新的未使用對(duì)象。

StringBuffer:在使用 StringBuffer 類時(shí),每次都會(huì)對(duì) StringBuffer 對(duì)象本身進(jìn)行操作,而不是生成新的對(duì)象,所以如果需要對(duì)字符串進(jìn)行修改推薦使用 StringBuffer。

StringBuilder:StringBuilder 類在 Java 5 中被提出,它和 StringBuffer 之間的最大不同在于 StringBuilder 的方法不是線程安全的(不能同步訪問)。由于 StringBuilder 相較于 StringBuffer 有速度優(yōu)勢(shì),所以多數(shù)情況下建議使用 StringBuilder 類。

StringBuilder使用實(shí)例:

public class RunoobTest{
    public static void main(String args[]){
        StringBuilder sb = new StringBuilder(10);
        sb.append("Runoob..");
        System.out.println(sb);  
        sb.append("!");
        System.out.println(sb); 
        sb.insert(8, "Java");
        System.out.println(sb); 
        sb.delete(5,8);
        System.out.println(sb);  
    }
}
// 實(shí)例編譯運(yùn)行結(jié)果如下:
// Runoob..
// Runoob..!
// Runoob..Java!
// RunooJava!

然而在應(yīng)用程序要求線程安全的情況下,則必須使用 StringBuffer 類。StringBuffer使用實(shí)例:

public class Test {
    public static void main(String args[]) {
        StringBuffer sBuffer = new StringBuffer("稀土掘金:");
        sBuffer.append("www");
        sBuffer.append(".juejin");
        sBuffer.append(".cn");
        System.out.println(sBuffer);
    }
}

// 實(shí)例編譯運(yùn)行結(jié)果如下:
// 稀土掘金:www.juejin.cn

StringBuffer 方法

StringBuffer 類支持的主要方法:

序號(hào)方法描述
1public StringBuffer append(String s),將指定的字符串追加到此字符序列
2public StringBuffer reverse(), 將此字符序列用其反轉(zhuǎn)形式取代
3public delete(int start, int end), 移除此序列的子字符串中的字符
4public insert(int offset, int i), 將 int 參數(shù)的字符串表示形式插入此序列中
5insert(int offset, String str) , 將 str 參數(shù)的字符串插入此序列中
6replace(int start, int end, String str) , 使用給定 String 中的字符替換此序列的子字符串中的字符

StringBuffer 類的其他常用方法:

序號(hào)方法描述
1int capacity(),返回當(dāng)前容量
2char charAt(int index),返回此序列中指定索引處的 char 值
3void ensureCapacity(int minimumCapacity),確保容量至少等于指定的最小值
4void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin),將字符從此序列復(fù)制到目標(biāo)字符數(shù)組 dst
5int indexOf(String str),返回第一次出現(xiàn)的指定子字符串在該字符串中的索引
6int indexOf(String str, int fromIndex),返從指定的索引處開始,返回第一次出現(xiàn)的指定子字符串在該字符串中的索引
7int lastIndexOf(String str),返回指定子字符串在此字符串中最后一次出現(xiàn)處的索引
8int lastIndexOf(String str, int fromIndex),返回指定字符在此字符串中最后一次出現(xiàn)處的索引,從指定的索引處開始進(jìn)行反向搜索
9int length(),返回長度(字符數(shù))
10void setCharAt(int index, char ch),將給定索引處的字符設(shè)置為 ch 參數(shù)的值
11void setLength(int newLength),設(shè)置字符序列的長度
12CharSequence subSequence(int start, int end),返回一個(gè)新的字符序列,該字符序列是此序列的子序列
13String substring(int start),返回一個(gè)新的 String,它包含此字符序列當(dāng)前所包含的字符子序列
14String substring(int start, int end),返回一個(gè)新的 String,它包含此序列當(dāng)前所包含的字符子序列
15String toString(),返回此序列中數(shù)據(jù)的字符串表示形式

方法實(shí)例:\color{red}{方法實(shí)例:}方法實(shí)例:

reverse() 方法實(shí)例

public synchronized StringBuffer reverse()

描述:

將此字符序列用其反轉(zhuǎn)形式取代。

參數(shù):

返回值:

字符序列的反轉(zhuǎn)形式。

public class Test {
    public static void main(String args[]) {
        String string="niJeuJ";
        String reverse = new StringBuffer(string).reverse().toString();
        System.out.println("字符串反轉(zhuǎn)前:"+string);
        System.out.println("字符串反轉(zhuǎn)后:"+reverse);
    }
}

// 以上程序執(zhí)行結(jié)果為:
// 字符串反轉(zhuǎn)前:niJeuJ
// 字符串反轉(zhuǎn)后:JueJin

以上就是淺析Java中StringBuffer和StringBuilder的使用的詳細(xì)內(nèi)容,更多關(guān)于Java StringBuffer StringBuilder的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Javaweb使用getPart接收表單文件過程解析

    Javaweb使用getPart接收表單文件過程解析

    這篇文章主要介紹了Javaweb使用getPart接收表單文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • IDEA全量替換一次性解決舊項(xiàng)目并將所有文件換行符改為LF問題

    IDEA全量替換一次性解決舊項(xiàng)目并將所有文件換行符改為LF問題

    這篇文章主要介紹了IDEA全量替換一次性解決舊項(xiàng)目并將所有文件換行符改為LF問題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下
    2019-05-05
  • 使用FeignClient進(jìn)行微服務(wù)交互方式(微服務(wù)接口互相調(diào)用)

    使用FeignClient進(jìn)行微服務(wù)交互方式(微服務(wù)接口互相調(diào)用)

    這篇文章主要介紹了使用FeignClient進(jìn)行微服務(wù)交互方式(微服務(wù)接口互相調(diào)用),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringBoot導(dǎo)入mail依賴報(bào)錯(cuò)問題解決

    SpringBoot導(dǎo)入mail依賴報(bào)錯(cuò)問題解決

    這篇文章主要介紹了SpringBoot導(dǎo)入mail依賴報(bào)錯(cuò)問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • SpringBoot redis分布式緩存實(shí)現(xiàn)過程解析

    SpringBoot redis分布式緩存實(shí)現(xiàn)過程解析

    這篇文章主要介紹了SpringBoot redis分布式緩存實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 在SpringBoot中更改默認(rèn)端口的方法總結(jié)

    在SpringBoot中更改默認(rèn)端口的方法總結(jié)

    在本文中,小編將帶大家學(xué)習(xí)如何在 Spring Boot 中更改默認(rèn)端口,默認(rèn)情況下,嵌入式 Web 服務(wù)器使用 8080端口來啟動(dòng) Spring 引導(dǎo)應(yīng)用程序,有幾種方法可以更改該端口,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Spring?Bean創(chuàng)建的另一條捷徑

    Spring?Bean創(chuàng)建的另一條捷徑

    這篇文章主要為大家介紹了Spring?Bean創(chuàng)建的另一條方法捷徑詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • SpringBoot+RabbitMQ+Redis實(shí)現(xiàn)商品秒殺的示例代碼

    SpringBoot+RabbitMQ+Redis實(shí)現(xiàn)商品秒殺的示例代碼

    本文主要介紹了SpringBoot+RabbitMQ+Redis實(shí)現(xiàn)商品秒殺,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • JAVA匿名內(nèi)部類(Anonymous Classes)的具體使用

    JAVA匿名內(nèi)部類(Anonymous Classes)的具體使用

    本文主要介紹了JAVA匿名內(nèi)部類,匿名內(nèi)部類在我們JAVA程序員的日常工作中經(jīng)常要用到,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • IDEA 中創(chuàng)建SpringBoot 父子模塊的實(shí)現(xiàn)

    IDEA 中創(chuàng)建SpringBoot 父子模塊的實(shí)現(xiàn)

    這篇文章主要介紹了IDEA 中創(chuàng)建SpringBoot 父子模塊的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論