Java检查StringBuilder是否包含字符串的几种方法
作者:悟能不能悟
在Java中,检查StringBuilder是否包含字符串(即非空)的最直接方法是检查其长度,本文整理了一些判断方法,感兴趣的小伙伴可以了解一下
在Java中,检查StringBuilder是否包含字符串(即非空)的最直接方法是检查其长度(length())。以下是详细的判断方法:
1. 判断StringBuilder是否为空(无内容)
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是否非空(有内容)
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:转换为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有内容: Hello
        
        // 内容检查
        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有内容: " + sb);
        }
    }
    
    static void checkContent(StringBuilder sb, String search) {
        if (sb.indexOf(search) != -1) {
            System.out.println("包含'" + search + "'");
        } else {
            System.out.println("不包含'" + search + "'");
        }
    }
}性能建议
避免不必要的toString()转换
// 错误做法(创建临时字符串)
if (sb.toString().isEmpty()) { ... }
// 正确做法(直接检查长度)
if (sb.length() == 0) { ... }**优先使用indexOf()替代toString().contains()**
当需要检查内容时,indexOf()直接在内部数组中搜索,比创建临时字符串更高效。
版本说明
length() == 0:所有Java版本适用
isEmpty():仅限Java 11及更高版本
indexOf():所有Java版本适用且高效
到此这篇关于Java检查StringBuilder是否包含字符串的几种方法的文章就介绍到这了,更多相关StringBuilder是否包含字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
