首页 > 其他分享 >五,StringBuffer

五,StringBuffer

时间:2024-10-20 20:22:39浏览次数:6  
标签:buffer StringBuffer System 字符串 println out

Java 中的 StringBuffer 类详解

StringBuffer 类是 Java 中用于创建可变字符串的类。与 String 类不同,StringBuffer 对象允许在原有字符串上进行修改,而不需要创建新的字符串对象。这种特性使得 StringBuffer 在需要频繁修改字符串的场景下更加高效。此外,StringBuffer 是线程安全的,这意味着它的方法是同步的,可以在多线程环境中安全使用。

StringBuffer 类的特点

  1. 可变性StringBuffer 对象的字符串内容可以被修改。
  2. 线程安全StringBuffer 的方法是同步的,可以在多线程环境中使用。

StringBuffer 类的构造方法

StringBuffer 类提供了几种构造方法,允许以不同的方式初始化字符串缓冲区:

public class Demo1StringBuffer {
    public static void main(String[] args) {
        StringBuffer sb1 = new StringBuffer();
        System.out.println("默认容量:"+sb1.capacity());//默认容量为16个字符
        System.out.println("sb1:"+sb1);//结果不是地址值,已经重写了toString方法
        System.out.println("存储的字符数量:"+sb1.length());//获取StringBuffer中存储的字符串长度(字符个数)

        System.out.println("-------------------------");
        //创建指定大小的StringBuffer
        StringBuffer sb2 = new StringBuffer(50);
        System.out.println("sb2的容量:"+sb2.capacity());

        System.out.println("-------------------------");
        //创建一个存储了一个字符串的StringBuffer
        StringBuffer sb3 = new StringBuffer("hello");
        System.out.println("sb3默认的容量:"+sb3.capacity());//默认大小等于16+实际大小
        System.out.println("sb3实际的容量:"+sb3.length());
        System.out.println("sb3:" + sb3);

    }
}

StringBuffer 类的方法

StringBuffer 类提供了多种方法来操作字符串,包括添加、删除、替换、反转和截取等。

添加功能

StringBuffer buffer = new StringBuffer("Hello");

// 在字符串缓冲区的末尾追加一个字符串
buffer.append(" World");
System.out.println(buffer); // 输出:Hello World

// 在指定位置插入一个字符串
buffer.insert(5, " Java");
System.out.println(buffer); // 输出:Hello Java World

删除功能

// 删除指定位置的字符
buffer.deleteCharAt(5);
System.out.println(buffer); // 输出:Hello Java World

// 删除从开始位置到结束位置的字符序列
buffer.delete(5, 9);
System.out.println(buffer); // 输出:Hello World

替换功能

// 替换从开始位置到结束位置的字符序列
buffer.replace(5, 10, "Java");
System.out.println(buffer); // 输出:Hello Java

反转功能

// 反转字符串缓冲区中的字符序列
buffer.reverse();
System.out.println(buffer); // 输出:avaJ olleH

截取功能

// 从指定位置开始截取到字符串缓冲区末尾的字符序列
String substringFromStart = buffer.substring(5);
System.out.println(substringFromStart); // 输出:olleh

// 从开始位置到结束位置截取字符序列
String substringToEnd = buffer.substring(5, 9);
System.out.println(substringToEnd); // 输出:olle

总结

StringBuffer 类是 Java 中处理可变字符串的基础,其线程安全的特性和丰富的方法使得字符串操作既安全又方便。在需要频繁修改字符串的场景下,使用 StringBuffer 可以提高程序的效率。通过理解 StringBuffer 类的特点和方法,可以更有效地进行字符串处理和编程。

扩展StringBuilder和StringBuffer

在 Java 中,StringBuilder 和 StringBuffer 都是用于创建可变字符串的类。它们提供了相似的方法来操作字符串,如添加、删除、替换和反转等。尽管它们在功能上非常相似,但它们之间存在一些关键的区别,主要体现在线程安全性和性能上,StringBUffer线程安全但效率低,StringBuilder反之。

标签:buffer,StringBuffer,System,字符串,println,out
From: https://www.cnblogs.com/bjynjj/p/18487813

相关文章

  • java 11天 StringBuffer static
    补充:1--100正则表达式1-100 100拿出去或上“[1-9][0-9]{0,1}|100”0--100  0和100拿出去或上“[1-9][0-9]{0,1}|100|0”获取常量池中的地址 String - intern();String学过23个 一.StringBufferStringBuffer 字符串长度+16 StringBuffer空间是2*oldCap......
  • 【常用API】Object、Objects、包装类、StringBuilder、StringBuffer、StringJoiner
    API:应用程序编程接口就是java帮我们已经写好了一些程序,如:类、方法等,直接拿过来解决一些问题。1.Object它常用的方法:toString():返回对象的字符串形式;存在意义,让子类重写,以便返回子类对象的内容。equals():默认比较两个对象的地址是否相等;存在意义,让子类重写,以便用......
  • 常用类--StringBuffer
    StringBuffer:可变的字符序列,可以看作一个存储字符的一个容器构造方法:publicStringBuffer()publicStringBuffer(intcapacity)publicStringBuffer(Stringstr)点击查看代码publicclassStringBufferDemo1{publicstaticvoidmai......
  • 章13——常用类——StringBuffer类
    基本介绍即StringBuffer是存在堆中的而非常量池中的。(value数组存放字符串内容)与String的对比StringBuffer:不用每次更新地址,但当数组空间不够时,会扩大并且更新地址。构造器StringBufferstringBuffer=newStringBuffer();StringBufferstringBu......
  • String Builder 与 StringBuffer 的区别 ----面试时遇到的一个问题
    简介:在Java中,StringBuilder和StringBuffer都是用于操作字符串的类,它们提供了类似于字符串的功能,但允许在运行时修改字符串的内容。这两个类的主要区别在于线程安全性。StringBuilderStringBuilder是一个非线程安全的类,它在Java5中引入。由于它没有线程安全的限......
  • 【Java】String StringBuffer与StringBuilder(实操+面试+记忆方法)
    Java系列文章目录补充内容Windows通过SSH连接Linux第一章Linux基本命令的学习与Linux历史文章目录Java系列文章目录一、前言二、学习内容:三、问题描述四、解决方案:4.1代码学习与性能测试4.1.1代码4.1.2性能测试结果4.2区别五、总结:5.1使用场景5.2关联记忆......
  • 【高级编程】实用类详解(补充)StringBuffer类 和 StringBuilder类
    文章目录为什么使用StringBuffer?StringBuffer1.声明2.常用方法3.举例4.时间戳StringBuilderStringBufferVSStringBuilder为什么使用StringBuffer?StringBuffer是Java中的一个可变字符序列类,允许在原始对象上进行修改,而不会生成新的字符串对象。与String比较......
  • Java中String、StringBuffer以及StringBulider的区别
    String、StringBuffer以及StringBulider的比较在Java中,String、StringBuilder和StringBuffer是三种用来表示和操作字符串的对象。它们之间的主要区别在于可变性、线程安全性和性能方面。下面是这些类的主要区别:可变性String:是不可变的(immutable)。这意味着一旦一个Str......
  • String,StringBuffer,StringBuilder有什么区别?
    1.可变性:String类使用了final关键字字符数组保存字符串,所以String对象是不可变的,也就是我们说的常量。而StringBuffer和StringBuilder均继承了AbstractStringBuilder类,且它们的构造方法都是调用父类的构造方法。AbstractStringBuilder类中也使用了字符数组保存字符串,但是没有使用......
  • Java中的String、StringBuilder、StringBuffer
            在Java中,String、StringBuilder 和 StringBuffer 是处理字符串的三个常用类,它们各有特点和适用场景。以下是对这三个类的详细解释、常用方法的代码示例以及它们之间的区别和适用场景。StringString 类表示不可变的字符序列。一旦创建,String 对象的内容......