Java检查StringBuilder是否包含字符串的几种方法

 更新时间:2025年06月26日 09:29:29   作者:悟能不能悟  
在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是否包含字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java Scanner类的使用示例代码

    java Scanner类的使用示例代码

    这篇文章主要介绍了java Scanner类的使用,Scanner类还可以任意地对字符串和基本类型(如int和double)的数据进行分析。借助于Scanner,可以针对任何要处理的文本内容编写自定义的语法分析器,感兴趣的朋友跟随小编一起看看吧
    2021-07-07
  • Java 二维数组创建及使用方式

    Java 二维数组创建及使用方式

    这篇文章主要介绍了Java 二维数组创建及使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • JPA实现多表连接查询过程

    JPA实现多表连接查询过程

    这篇文章主要介绍了JPA实现多表连接查询过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-06-06
  • MyBatis+MySQL 返回插入的主键ID的方法

    MyBatis+MySQL 返回插入的主键ID的方法

    本篇文章主要介绍了MyBatis+MySQL 返回插入的主键ID的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • spring中对象注入的三种实现方式

    spring中对象注入的三种实现方式

    本文主要介绍了spring中对象注入的三种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Java异常处理深入理解

    Java异常处理深入理解

    这篇文章主要介绍了java项目常用异常处理汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-07-07
  • 从入门到精通详解SpringBoot整合MyBatis的全攻略

    从入门到精通详解SpringBoot整合MyBatis的全攻略

    在 Java 持久层框架的版图中,MyBatis 无疑占据着举足轻重的地位,本文详细解析了MyBatis核心架构,SpringBoot整合方式,动态SQL与缓存机制并分页的方案,希望对大家有一定的帮助
    2026-05-05
  • Spring Boot 使用断言让你的代码在上线前就通过“体检”(最新整理)

    Spring Boot 使用断言让你的代码在上线前就通过“体检”(最新整理)

    断言是一种编程技巧,用于在代码中插入检查点,验证程序的状态是否符合预期,如果断言失败,程序会抛出一个错误,帮助你快速发现和修复bug,本文给大家介绍Spring Boot 断言:让你的代码在上线前就通过“体检”,感兴趣的朋友一起看看吧
    2025-03-03
  • Java实现敏感数据内存清理的代码详解

    Java实现敏感数据内存清理的代码详解

    Java的自动内存管理机制并不能保证敏感数据的彻底销毁,本文将通过真实代码、内存监控方案和安全擦除策略,展现如何用Java实现敏感数据的物理级清除,让敏感信息在内存中不留痕迹,需要的朋友可以参考下
    2025-10-10
  • kafka生产者发送消息流程深入分析讲解

    kafka生产者发送消息流程深入分析讲解

    本文将介绍kafka的一条消息的发送流程,从消息的发送到服务端的存储。上文说到kafak分为客户端与服务端,要发送消息就涉及到了网络通讯,kafka采用TCP协议进行客户端与服务端的通讯协议
    2023-03-03

最新评论