Java中的StringBuffer类

  1. 概述
  2. 构造方法
  3. 常用方法

概述

线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。

每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。


构造方法

  • StringBuffer(): 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。

  • StringBuffer(int capacity):构造一个不带字符,但具有指定初始容量的字符串缓冲区。

  • StringBuffer(String str) :构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容,字符串缓冲区的初始容量为 16 加上字符串 str 的长度。


常用方法

  • StringBuffer append(String str) :将指定的字符串追加到此字符序列。(有多个不同数据类型的重载形式)

    StringBuffer buffer = new StringBuffer("hello,");    // 创建一个 StringBuffer 对象
    String str = "World!";
    buffer.append(str);    // 向 StringBuffer 对象追加 str 字符串
    System.out.println(buffer.substring(0));    // 输出:Hello,World!  
  • void setCharAt(int index, char ch): 将给定索引处的字符设置为 ch。

    StringBuffer sb = new StringBuffer("QAQ");
    sb.setCharAt(0,'q');
    System.out.println(sb);    // 输出:qAQ
    sb.setCharAt(2,'q');
    System.out.println(sb);    // 输出:qAq
  • 删除字符串

    1. StringBuffer delete(int start, int end): 移除此序列的子字符串中的字符。删除范围:[start,end)。

      StringBuffer sb = new StringBuffer("hello_java");
      sb.delete(6,9);
      System.out.println(sb);    // 输出:hello_
      sb.delete(1,2);
      System.out.println(sb);    // 输出:hlo_
    2. StringBuffer deleteCharAt(int index): 移除此序列指定位置的 char。

      StringBuffer sb = new StringBuffer("学无_止境");
      sb.deleteCharAt(2);
      System.out.println(sb);    // 输出:学无止境
  • StringBuffer reverse(): 将此字符序列用其反转形式取代。

    StringBuffer sb = new StringBuffer("abcde");
    sb.reverse();
    System.out.println(sb);     //输出:edcba
  • StringBuffer insert(int offset, String str) : 将字符串插入此字符序列指定位置中。(有多个不同数据类型的重载形式)

    StringBuffer sb = new StringBuffer("acd");
    sb.insert(1,"b");
    System.out.println(sb);     //输出:abcd

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1401362462@qq.com

文章标题:Java中的StringBuffer类

字数:576

本文作者:百xiao生

发布时间:2020-11-18, 23:30:13

最后更新:2020-12-07, 15:09:16

原始链接:https://baixiaoshengzjj.top/2020/11/18/Java%E4%B8%AD%E7%9A%84StringBuffer%E7%B1%BB/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。