Java中StringBuilder類常用方法總結(jié)
StringBuilder類常用方法
StringBuilder 是 Java 中常用的字符串緩沖區(qū)類,適用于頻繁修改字符串的場景。
- 可變性:StringBuilder 對象是可變的,可以在同一個(gè)對象上進(jìn)行多次修改。
- 性能: 正因?yàn)镾tringBuilder 是可變的,SB在字符串拼接操作中比 String 更高效,特別是在循環(huán)中。
- 線程不安全:StringBuilder 是線程不安全的,適用于單線程環(huán)境。如果需要線程安全的字符串構(gòu)建器,可以使用 StringBuffer。
1. append(): 將指定字符串、字符、布爾值或其他數(shù)據(jù)類型的表示追加到字符串緩沖區(qū)的末尾。
2. insert():在指定位置插入指定字符串、字符、布爾值或其他數(shù)據(jù)類型的表示。
Tips:insert(i)是插在插入位置之前!
3. replace():用新的字符串替換指定范圍內(nèi)的字符序列。
不包含結(jié)束位置下標(biāo)。
4. delete():刪除指定范圍內(nèi)的字符序列。
不包含結(jié)束位置下標(biāo)。
5. deleteCharAt():刪除指定索引處的字符。
6. reverse(): 反轉(zhuǎn)字符串緩沖區(qū)中的字符序列。
7. charAt():獲取指定索引處的字符。
8. setCharAt():將指定索引處的字符替換為新的字符。
9. substring():返回一個(gè)新的字符串,其中包含字符串緩沖區(qū)中指定范圍內(nèi)的字符。
不包含結(jié)束位置下標(biāo)。
10. indexOf():返回指定子字符串第一次出現(xiàn)的索引。
11. lastIndexOf():返回指定子字符串最后一次出現(xiàn)的索引。
12. length():返回字符串緩沖區(qū)中的字符數(shù)。
13. capacity():返回當(dāng)前容量,即可以存儲(chǔ)的字符數(shù)。
14. ensureCapacity(): 確保容量至少等于指定的最小值。
15. toString():將字符串緩沖區(qū)中的字符序列轉(zhuǎn)換為字符串。
17. setLength():用于設(shè)置當(dāng)前串的長度。
如果新長度小于當(dāng)前長度,那么超出部分的字符將會(huì)被丟棄;如果新長度大于當(dāng)前長度,那么超出部分的字符將會(huì)以 null 字符填充。
18. equals():比較兩個(gè) StringBuilder 對象的引用是否相等。
- sb1 和 sb2 是兩個(gè)不同的 StringBuilder 對象,即使它們的內(nèi)容相同,equals 方法也會(huì)返回 false,因?yàn)樗鼈兊囊貌煌?/strong>
StringBuilder 類中的 equals() 方法并沒有重寫 Object 類中的 equals() 方法,而是沿用了 Object 類中的 equals() 方法。
實(shí)際上比較的是對象的引用是否相等,而不是對象內(nèi)容是否相等。
如果需要比較兩個(gè) StringBuilder 對象的內(nèi)容是否相等:
(1)先將其轉(zhuǎn)換為 String 類型,然后使用 String 類的 equals() 方法進(jìn)行比較。
or:
(2)使用 compareTo方法,返回值等于0說明相等??????
compareTo 方法:按照字典順序比較兩個(gè) StringBuilder 對象的內(nèi)容。
返回值表示比較的結(jié)果:
- 負(fù)數(shù):A的內(nèi)容小于 B 的內(nèi)容。
- 0:A 的內(nèi)容等于 B 的內(nèi)容。
- 正數(shù):A 的內(nèi)容大于 B 的內(nèi)容。
總結(jié)
到此這篇關(guān)于Java中StringBuilder類常用方法的文章就介紹到這了,更多相關(guān)Java StringBuilder類常用方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java調(diào)用ChatGPT(基于SpringBoot和Vue)實(shí)現(xiàn)可連續(xù)對話和流式輸出的ChatGPT API
這篇文章主要介紹了Java調(diào)用ChatGPT(基于SpringBoot和Vue),實(shí)現(xiàn)可連續(xù)對話和流式輸出的ChatGPT API(可自定義實(shí)現(xiàn)AI助手),文中代碼示例介紹的非常詳細(xì),感興趣的朋友可以參考下2023-04-04SpringBoot http請求注解@RestController原理解析
這篇文章主要介紹了SpringBoot http請求注解@RestController原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01java數(shù)據(jù)結(jié)構(gòu)之java實(shí)現(xiàn)棧
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)棧,需要的朋友可以參考下2014-03-03基于HttpClient在HTTP協(xié)議接口測試中的使用(詳解)
下面小編就為大家?guī)硪黄贖ttpClient在HTTP協(xié)議接口測試中的使用(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10Java實(shí)現(xiàn)字符串的分割(基于String.split()方法)
Java中的我們可以利用split把字符串按照指定的分割符進(jìn)行分割,然后返回字符串?dāng)?shù)組,下面這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)字符串的分割的相關(guān)資料,是基于jDK1.8版本中的String.split()方法,需要的朋友可以參考下2022-09-09Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(9)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07idea創(chuàng)建springboot項(xiàng)目和springcloud項(xiàng)目的詳細(xì)教程
這篇文章主要介紹了idea創(chuàng)建springboot項(xiàng)目和springcloud項(xiàng)目方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10Java中RabbitMQ消息隊(duì)列的交換機(jī)詳解
這篇文章主要介紹了Java中的RabbitMQ交換機(jī)詳解,消息隊(duì)列是指利用高效可靠的消息傳遞機(jī)制進(jìn)行與平臺(tái)無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進(jìn)行分布式系統(tǒng)的集成,是在消息的傳輸過程中保存消息的容器,需要的朋友可以參考下2023-07-07