Java檢查StringBuilder是否包含字符串的幾種方法
在Java中,檢查StringBuilder是否包含字符串(即非空)的最直接方法是檢查其長度(length())?。以下是詳細(xì)的判斷方法:
1. 判斷StringBuilder是否為空(無內(nèi)容)
StringBuilder sb = new StringBuilder();
// 方法1:使用length()判斷
if (sb.length() == 0) {
System.out.println("StringBuilder為空");
}
// 方法2:Java 11+ 使用isEmpty()
if (sb.isEmpty()) { // Java 11及以上版本可用
System.out.println("StringBuilder為空");
}2. 判斷StringBuilder是否非空(有內(nèi)容)
StringBuilder sb = new StringBuilder("Hello");
if (sb.length() > 0) {
System.out.println("StringBuilder包含字符串: " + sb);
}
// 或者更直觀的判斷
if (!sb.isEmpty()) { // Java 11+
System.out.println("StringBuilder非空");
}3. 判斷是否包含特定字符串
StringBuilder sb = new StringBuilder("Hello World");
// 方法1:轉(zhuǎn)換為String后判斷(消耗資源)
if (sb.toString().contains("World")) {
System.out.println("包含'World'");
}
// 方法2:使用indexOf()高效判斷(推薦)
if (sb.indexOf("World") != -1) {
System.out.println("包含'World'");
}4. 完整示例代碼
public class StringBuilderCheck {
public static void main(String[] args) {
// 空StringBuilder判斷
StringBuilder sb1 = new StringBuilder();
checkEmpty(sb1); // 輸出: StringBuilder為空
// 非空StringBuilder判斷
StringBuilder sb2 = new StringBuilder("Hello");
checkEmpty(sb2); // 輸出: StringBuilder有內(nèi)容: Hello
// 內(nèi)容檢查
checkContent(sb2, "Hi"); // 輸出: 不包含'Hi'
checkContent(sb2, "ell"); // 輸出: 包含'ell'
}
static void checkEmpty(StringBuilder sb) {
if (sb.length() == 0) {
System.out.println("StringBuilder為空");
} else {
System.out.println("StringBuilder有內(nèi)容: " + sb);
}
}
static void checkContent(StringBuilder sb, String search) {
if (sb.indexOf(search) != -1) {
System.out.println("包含'" + search + "'");
} else {
System.out.println("不包含'" + search + "'");
}
}
}性能建議
?避免不必要的toString()轉(zhuǎn)換?
// 錯(cuò)誤做法(創(chuàng)建臨時(shí)字符串)
if (sb.toString().isEmpty()) { ... }
// 正確做法(直接檢查長度)
if (sb.length() == 0) { ... }?**優(yōu)先使用indexOf()替代toString().contains()**?
當(dāng)需要檢查內(nèi)容時(shí),indexOf()直接在內(nèi)部數(shù)組中搜索,比創(chuàng)建臨時(shí)字符串更高效。
版本說明
length() == 0:?所有Java版本適用
isEmpty():僅限Java 11及更高版本?
indexOf():?所有Java版本適用且高效
到此這篇關(guān)于Java檢查StringBuilder是否包含字符串的幾種方法的文章就介紹到這了,更多相關(guān)StringBuilder是否包含字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring中對(duì)象注入的三種實(shí)現(xiàn)方式
本文主要介紹了spring中對(duì)象注入的三種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
從入門到精通詳解SpringBoot整合MyBatis的全攻略
在 Java 持久層框架的版圖中,MyBatis 無疑占據(jù)著舉足輕重的地位,本文詳細(xì)解析了MyBatis核心架構(gòu),SpringBoot整合方式,動(dòng)態(tài)SQL與緩存機(jī)制并分頁的方案,希望對(duì)大家有一定的幫助2026-05-05
Spring?Boot?使用斷言讓你的代碼在上線前就通過“體檢”(最新整理)
斷言是一種編程技巧,用于在代碼中插入檢查點(diǎn),驗(yàn)證程序的狀態(tài)是否符合預(yù)期,如果斷言失敗,程序會(huì)拋出一個(gè)錯(cuò)誤,幫助你快速發(fā)現(xiàn)和修復(fù)bug,本文給大家介紹Spring?Boot?斷言:讓你的代碼在上線前就通過“體檢”,感興趣的朋友一起看看吧2025-03-03
Java實(shí)現(xiàn)敏感數(shù)據(jù)內(nèi)存清理的代碼詳解
Java的自動(dòng)內(nèi)存管理機(jī)制并不能保證敏感數(shù)據(jù)的徹底銷毀,本文將通過真實(shí)代碼、內(nèi)存監(jiān)控方案和安全擦除策略,展現(xiàn)如何用Java實(shí)現(xiàn)敏感數(shù)據(jù)的物理級(jí)清除,讓敏感信息在內(nèi)存中不留痕跡,需要的朋友可以參考下2025-10-10
kafka生產(chǎn)者發(fā)送消息流程深入分析講解
本文將介紹kafka的一條消息的發(fā)送流程,從消息的發(fā)送到服務(wù)端的存儲(chǔ)。上文說到kafak分為客戶端與服務(wù)端,要發(fā)送消息就涉及到了網(wǎng)絡(luò)通訊,kafka采用TCP協(xié)議進(jìn)行客戶端與服務(wù)端的通訊協(xié)議2023-03-03

