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

Java中的StringBuilder类

StringBuilder 类

StringBuilder 是 Java 中用于创建和操作可变字符串的另一个关键类,它是线程不安全的,但因此在单线程环境中执行效率更高。下面我们将详细介绍其构造方法、常用方法和示例代码。

构造方法

  • StringBuilder(): 创建一个空的字符串构建器,默认容量为 16。
  • StringBuilder(int capacity): 创建一个具有指定初始容量的字符串构建器。
  • StringBuilder(String str): 使用给定的字符串初始化构建器。

常用方法

  1. append(Object obj): 向字符串末尾追加任何类型的对象。
  2. insert(int index, Object obj): 在指定位置插入对象。
  3. delete(int start, int end): 删除指定范围内的字符。
  4. replace(int start, int end, String str): 替换指定范围内的子串。
  5. reverse(): 反转字符串中的字符顺序。
  6. length(): 返回字符串长度。
  7. capacity(): 返回当前容量。
  8. toString(): 将构建器内容转换为字符串。

性能考量

StringBuilder 与 StringBuffer 相比,在单线程环境中更快,因为没有同步开销。然而,在多线程中,应避免共享未同步的 StringBuilder,以免引发数据不一致。

实例代码

public class StringBuilderExample {

    public static void main(String[] args) {
        // 创建一个初始包含 "Hello" 的 StringBuilder
        StringBuilder sb = new StringBuilder("Hello");

        // 使用 append 方法追加内容
        sb.append(", World!");

        // 1. append() 方法
        System.out.println("After append(): " + sb.toString()); // 输出: Hello, World!

        // 使用 insert 方法在索引 5 处插入 "Java "
        sb.insert(5, "Java ");

        // 2. insert() 方法
        System.out.println("After insert(): " + sb.toString()); // 输出: HelloJava , World!

        // 使用 delete 方法删除从索引 0 到 6 的内容
        sb.delete(0, 6);

        // 3. delete() 方法
        System.out.println("After delete(): " + sb.toString()); // 输出: Java , World!

        // 使用 replace 方法将索引 5 到 11 替换为 "Python"
        sb.replace(5, 11, "Python");

        // 4. replace() 方法
        System.out.println("After replace(): " + sb.toString()); // 输出: Java Python!

        // 使用 reverse 方法反转 StringBuilder 的所有内容
        sb.reverse();

        // 5. reverse() 方法
        System.out.println("After reverse(): " + sb.toString()); // 输出: !nohtPy avaJ

        // 获取当前 StringBuilder 的长度
        int length = sb.length();

        // 6. length() 方法
        System.out.println("Length: " + length); // 输出: Length: 11

        // 获取当前 StringBuilder 的容量
        int capacity = sb.capacity();

        // 7. capacity() 方法
        System.out.println("Capacity: " + capacity); // 输出: Capacity: 16

        // 使用 toString 方法将 StringBuilder 转换为 String
        String result = sb.toString();

        // 8. toString() 方法
        System.out.println("Result as string: " + result); // 输出: !nohtPy avaJ
    }
}

http://www.kler.cn/news/356759.html

相关文章:

  • 【Vue】Vue3.0 (十二)、watch对ref定义的基本类型、对象类型;reactive定义的对象类型的监视使用
  • 【整合包及教程】第二代GPT-SoVITS V2:革新声音克隆技术
  • Linux——K8S平台的权限规划
  • connect 的断线重连设计
  • .cwsp勒索病毒:了解最新变种,以及如何保护您的数据
  • ubuntu24.0离线安装Ollama和纯cpu版本以及对接Spring AI
  • Missing classes detected while running R8报错解决方案
  • 博客|基于springBoot的精简博客系统设计与实现(附项目源码+论文+数据库)
  • [机器视觉]basler相机使用SN编号打开相机和采集
  • Android中的MVP模式
  • 【LeetCode】每日一题 2024_10_16 最小元素和最大元素的最小平均值(排序、模拟)
  • Android 开发 TabLayout 自定义指示器长度
  • 深入学习二叉树(BinaryTree)(纯小白进)
  • SpringBoot智能推荐:健康生活新体验
  • Lua表(Table)
  • MySQL程序介绍<一>
  • 侏罗纪公园不再是电影了吗?
  • 快速了解K8S几种网络实现
  • 代码复现(五):GCPANet
  • 高数导数积分知识点归纳