当前位置: 首页 > news >正文

检查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 + "'");}}
}

性能建议:

  1. 避免不必要的toString()转换

    // 错误做法(创建临时字符串)
    if (sb.toString().isEmpty()) { ... }// 正确做法(直接检查长度)
    if (sb.length() == 0) { ... }
  2. ​**优先使用indexOf()替代toString().contains()**​
    当需要检查内容时,indexOf()直接在内部数组中搜索,比创建临时字符串更高效。

版本说明:

  • length() == 0:​所有Java版本适用
  • isEmpty():仅限Java 11及更高版本
  • indexOf():​所有Java版本适用且高效
http://www.lqws.cn/news/523855.html

相关文章:

  • ARM内核之CMSIS
  • 【机器学习】非参数贝叶斯回归方法 GPR
  • ipfs在windows下载和安装
  • JSON框架转化isSuccess()为sucess字段
  • C++(智能指针)
  • Liunx操作系统笔记2
  • linux-修改文件命令(补充)
  • IT运维效率提升: 当IT监控遇上3D可视化
  • 三步实现B站缓存视频转MP4格式
  • 记一次AWS 中RDS优化费用使用的案例
  • Postman鉴权动态传参?对比脚本变量vs环境变量!
  • 理论加案例,一文读懂数据分析中的分类建模
  • 通过pyqt5学习MVC
  • 代理型 AI 重塑营销格局:国产 R²AIN SUITE 如何破解数据与技术瓶颈,实现 AI 赋能全链路提效
  • VScode常用快捷键【个人总结】
  • 2024年AEI SCI1区TOP,强化学习人工兔优化算法RLTARO+山地森林地形无人机编队路径规划,深度解析+性能实测
  • Dify、n8n、Coze、FastGPT 和 Ragflow 对比分析:如何选择最适合你的智能体平台?
  • Wpf的Binding
  • 数据库1.0
  • Python 爬虫入门:从数据爬取到转存 MySQL 数据库
  • 【Ansible】Ansible入门
  • Git常用操作详解
  • Python核心可视化库:Matplotlib与Seaborn深度解析
  • React 第六十四节Router中HashRouter的使用详细介绍及案例分析
  • 重置 MySQL root 密码
  • 基于STM32的智能节能风扇的设计
  • KNN算法(K近邻算法)
  • K8s在centos7安装及kubectl
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | BackgroundSlider(背景滑块)
  • 设备维修全流程记录,提升设备运维效率