Java StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

Java StringBuffer 和 StringBuilder 类

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

实例

···
public class ReadmeTest{
public static void main(String args[]){
StringBuilder sb = new StringBuilder(10);
sb.append("Readme..");
System.out.println(sb);
sb.append("!");
System.out.println(sb);
sb.insert(8, "Java");
System.out.println(sb);
sb.delete(5,8);
System.out.println(sb);
}
}
···

Java StringBuffer 和 StringBuilder 类

以上实例编译运行结果如下:

Readme..
Readme..!
Readme..Java!
ReadmJava!

然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

Test.java 文件代码:

public class Test{
  public static void main(String args[]){
    StringBuffer sBuffer = new StringBuffer("Readme官网:");
    sBuffer.append("www");
    sBuffer.append(".Readme");
    sBuffer.append(".com");
    System.out.println(sBuffer);  
  }
}

以上实例编译运行结果如下:

Readme官网:www.Readme.com

StringBuffer 方法

以下是 StringBuffer 类支持的主要方法:

序号 方法描述
1 public StringBuffer append(String s)
将指定的字符串追加到此字符序列。
2 public StringBuffer reverse()
将此字符序列用其反转形式取代。
3 public delete(int start, int end)
移除此序列的子字符串中的字符。
4 public insert(int offset, int i)
int 参数的字符串表示形式插入此序列中。
5 insert(int offset, String str)
str 参数的字符串插入此序列中。
6 replace(int start, int end, String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。

以下列表列出了 StringBuffer 类的其他常用方法:

序号 方法描述
1 int capacity()
返回当前容量。
2 char charAt(int index)
返回此序列中指定索引处的 char 值。
3 void ensureCapacity(int minimumCapacity)
确保容量至少等于指定的最小值。
4 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将字符从此序列复制到目标字符数组 dst
5 int indexOf(String str)
返回第一次出现的指定子字符串在该字符串中的索引。
6 int indexOf(String str, int fromIndex)
从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。
7 int lastIndexOf(String str)
返回最右边出现的指定子字符串在此字符串中的索引。
8 int lastIndexOf(String str, int fromIndex)
返回 String 对象中子字符串最后出现的位置。
9 int length()
返回长度(字符数)。
10 void setCharAt(int index, char ch)
将给定索引处的字符设置为 ch
11 void setLength(int newLength)
设置字符序列的长度。
12 CharSequence subSequence(int start, int end)
返回一个新的字符序列,该字符序列是此序列的子序列。
13 String substring(int start)
返回一个新的 String,它包含此字符序列当前所包含的字符子序列。
14 String substring(int start, int end)
返回一个新的 String,它包含此序列当前所包含的字符子序列。
15 String toString()
返回此序列中数据的字符串表示形式。

若文章对你有帮助,可以点赞或打赏支持我们。发布者:lyh会员,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/java-stringbuffer-%e5%92%8c-stringbuilder-%e7%b1%bb/

(0)
lyhlyh会员认证作者
上一篇 2023年 3月 4日 下午9:23
下一篇 2023年 3月 4日 下午9:25

相关推荐

  • seq

    文章目录seq补充说明语法选项实例 seq 以指定增量从首数开始打印数字到尾数 补充说明 seq命令 用于产生从某个数到另外一个数之间的所有整数。 语法 seq [选项]… 尾…

    入门教程 2024年 3月 4日
  • CentOS安装gcc组件

    CentOS不带gcc及组件,要使用就需要安装。 一键安装 yum -y install gcc gcc-c++ kernel-devel //安装gcc、c++编译器以及内核文件

    2021年 7月 13日
  • ip6tables

    文章目录ip6tables补充说明语法选项实例 ip6tables linux中防火墙软件 补充说明 ip6tables命令 和iptables一样,都是linux中防火墙软件,不…

    入门教程 2023年 12月 19日
  • tcpreplay

    文章目录tcpreplay补充说明选项实例 tcpreplay 将PCAP包重新发送,用于性能或者功能测试 补充说明 简单的说, tcpreplay 是一种pcap包的重放工具,它…

    入门教程 2024年 3月 11日
  • HTML 区块

    文章目录HTML <div> 和<span>HTML 内联元素HTML <div> 元素HTML <span> 元素HTML 分组标…

    入门教程 2023年 4月 13日
  • rcp

    文章目录rcp补充说明语法选项参数实例 rcp 使在两台Linux主机之间的文件复制操作更简单 补充说明 rcp命令 使在两台Linux主机之间的文件复制操作更简单。通过适当的配置…

    入门教程 2024年 3月 1日
  • iostat

    文章目录iostat补充说明语法选项参数实例 iostat 监视系统输入输出设备和CPU的使用情况 补充说明 iostat命令 被用于监视系统输入输出设备和CPU的使用情况。它的特…

    入门教程 2023年 12月 19日
  • nano

    文章目录nano补充说明语法选项用法 nano 字符终端文本编辑器 补充说明 nano 是一个字符终端的文本编辑器,有点像DOS下的editor程序。它比vi/vim要简单得多,比…

    入门教程 2024年 1月 10日
  • Java Number & Math 类

    一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。 文章目录实例Test.java 文件代码:Java Math 类Test…

    2023年 3月 4日
  • trap

    文章目录trap概要主要用途选项参数返回值关于信号例子1 清理临时文件2 忽略信号3 重置陷阱注意 trap 捕捉信号和其他事件并执行命令。 概要 trap [-lp] [[arg…

    入门教程 2024年 3月 11日
Translate »