Java 中的 StringBuffer:每个 Java 开发人员都应该知道的 11 种流行方法

已发表: 2021-05-26

目录

Java中StringBuffer的介绍

java中的StringBuffer是一个继承java.lang.Object类方法的类。 它是 String 的对等类,用于创建可修改或可变的 String。 它提供了 String 的大部分功能,只是它可以更改,即它表示可写和可增长的字符序列,而不是不可变和固定长度的字符序列。 以下是关于 Java 中的 java.lang.StringBuffer 的一些要点:

· 通过各种方法调用可以改变字符序列的内容和长度。

· 线程安全,即多线程安全使用

· java中的每个StringBuffer都有一个容量。

·子串和字符可以附加在末尾或中间插入。 它会自动增长并为添加空间腾出空间。 通常,预先分配的字符数量超过了为增长留出空间所需的数量。

下面是 Java 类中 StringBuffer 的声明方式:

公共最终类 StringBuffer

扩展对象

实现可序列化,CharSequence

StringBuffer 类的构造函数

1. StringBuffer() - 用于构造一个初始容量为 16 个字符且其中没有字符的字符串缓冲区。 句法:

StringBuffer a =new StringBuffer();

2. StringBuffer (CharSequence seq) ——用于构造一个字符串缓冲区,其中包含与 CharSequence 中相同的字符。

3. StringBuffer (int capacity) – 这用于创建一个字符串缓冲区,其初始容量已指定且没有字符。 句法:

字符串缓冲区 a=新字符串缓冲区(10);

4. StringBuffer (String str) – 这用于创建具有给定字符串内容的字符串缓冲区。 句法:

StringBuffer a=new StringBuffer(“java中的字符串缓冲区”);

阅读:字符串缓冲区和字符串生成器之间的区别

11种流行方法

1) Java Append()方法中的StringBuffer

.append() 用于连接给定的字符串和参数。 这是一个例子:

导入java.io.*;

公共类缓冲区{

公共静态无效主要(字符串 [] 参数)

{

StringBuffer a = new StringBuffer(“stringbuffer”);

a.append(“在 Java 中”);

System.out.println(a);

a.附加(0);

System.out.println(a);

}

}

输出:

2)Java Insert()方法中的StringBuffer

.insert() 方法用于在指定位置插入带有主字符串的给定字符串。 这是一个例子:

导入java.io.*;

公共类缓冲区{

公共静态无效主要(字符串 [] 参数)

{

StringBuffer a = new StringBuffer(“stringbuffer”);

a.插入(5,“为”);

System.out.println(a);

a.插入(0, 5);

System.out.println(a);

a.插入(3,假);

System.out.println(a);

a.插入(5,41.55d);

System.out.println(a);

a.插入(8,41.55f);

System.out.println(a);

字符 arr[] = { 'j', 'a', 'v', 'a' };

a.插入(2,arr);

System.out.println(a);

} }

输出:

另请阅读: Java 项目理念和主题

3) java replace()方法中的StringBuffer

.replace() 用于替换范围(beginIndex、endIndex)中指定的字符串的一部分。 这是一个例子:

导入java.io.*;

公共类缓冲区{

公共静态无效主要(字符串 [] 参数)

{

StringBuffer a = new StringBuffer(“stringbuffer”);

a.replace(5, 8, “是”);

System.out.println(a);

}

}

输出:

4)Java Delete()方法中的StringBuffer

.delete() 用于删除范围(beginIndex、endIndex)中指定的字符串。

.deleteCharAt() 用于删除特定索引处的字符。 此方法返回结果字符串缓冲区对象。 这是一个例子:

导入java.io.*;

公共类缓冲区{

公共静态无效主要(字符串 [] 参数)

{

StringBuffer a = new StringBuffer(“java中的字符串缓冲区”);

a.delete(0, 6);

System.out.println(a);

a.deleteCharAt(7);

System.out.println(a);

}

}

输出:

5)Java中的StringBuffer Reverse()方法

.reverse() 顾名思义用于反转给定的字符串。 这是一个例子:

导入java.io.*;

公共类缓冲区{

公共静态无效主要(字符串 [] 参数)

{

StringBuffer a = new StringBuffer(“stringbuffer”);

a.reverse();

System.out.println(a);

}

}

输出:

6)JavaCapacity()方法中的StringBuffer

java类中StringBuffer的.capacity()用于返回缓冲区的当前容量。 16 是默认容量。 容量随着字符数的增加而增加。 新容量=(旧容量*2)+2。 即如果当前容量为16,则新容量为32+2=34。

.length 用于在 java 中查找 StringBuffer 的长度。 例如:

导入java.io.*;

公共类缓冲区{

公共静态无效主要(字符串 [] 参数)

{

StringBuffer a = new StringBuffer(“stringbuffer”);

int p = a.length();

int q = a.容量();

System.out.println("字符串长度=" + p);

System.out.println("字符串容量=" + q);

}

}

输出:

从世界顶级大学在线获得软件工程学位获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

7) Java中的StringBuffer ensureCapacity()方法

stringbuffer 类的 .ensureCapacity() 用于确保指定的容量是当前容量的最小值。 如果给定容量大于当前容量,则新容量变为(旧容量*2)+2。 即如果 oldcapacity 为 16,则容量变为 34。例如:

公共类缓冲区{

公共静态无效主要(字符串参数[]){

StringBuffer a=new StringBuffer();

System.out.println(a.capacity());

a.append(“你好”);

System.out.println(a.capacity());

a.append(“java”);

System.out.println(a.capacity());

a.确保容量(10);

System.out.println(a.capacity());

a.确保容量(50);

System.out.println(a.capacity());

}

}

输出:

结帐:印度的 Java 开发人员薪水

8. charAt(int index) - 此方法用于返回给定索引处的字符。

9. substring(int begIndex) ——这个方法用于返回从beginIndex开始的给定字符串的子串。

10. substring(int beginIndex, int endIndex) - 此方法用于返回给定字符串的子字符串,从 beginIndex 开始,到 endIndex 结束。

11. void trimToSize() - 该方法用于减少字符序列的存储空间

Java中String和StringBuffer的区别

我们使用这个例子来创建 StringBuffer 和 String 类的对象并修改它们。 我们看到 StringBuffer 对象被修改了,而 String 没有。 请参见下面的示例:

公共类缓冲区{

公共静态无效主(字符串参数 [])

{

字符串 str = “字符串”;

str.concat(“缓冲区”);

System.out.println(str);

StringBuffer strB = new StringBuffer(“字符串”);

strB.append(“缓冲区”);

System.out.println(strB);

}

}

输出:

解释:输出是这样的,因为字符串是不可变的。 如果我们尝试连接字符串对象,它不会被改变。 但是,Java 中的 StringBuffer 会创建可变对象。 因此,它可以被改变。

有趣的点

  1. 它扩展了 Object 类。
  2. StringBuffer在java中实现的接口有Appendable、Serializable和CharSequence。
  3. StringBuffer 的方法可以在任何需要的地方同步。 这意味着所有操作的行为都好像它们以某种顺序发生一样。
  4. 当发生涉及源序列的操作时,此类仅在字符串缓冲区操作上同步,而不在源上同步。
  5. 从对象类继承的一些方法是equals、clone、getClass、notify、notifyAll、hashCode和finalize。

结论

Java 中的 StringBuffer 创建可修改的字符串对象。 因此,我们可以使用 StringBuffer 来追加、替换、反转、连接和修改字符或字符串的序列。 StringBuffer 类下的方法遵循这些功能。 综上所述,java中的StringBuffer只有在多个线程在修改StringBuffer的内容时才会用到。 它比字符串快。

在本文中,我们了解了有关 Java StringBuffer 的每一个细节。如果您想了解更多有关 Java 的知识并在您的技术职业生涯中提升,请探索upGrad -印度最大的在线高等教育公司的课程。

如果您有兴趣了解有关 Java、全栈软件开发的更多信息,请查看 upGrad 和 IIIT-B 的软件开发执行 PG 计划——全栈开发专业化,专为工作专业人士设计,提供 500 多个小时的严格培训, 9+ 项目和任务,IIIT-B 校友身份,实用的实践顶点项目和顶级公司的工作协助。

踏上梦想的工作

申请 upGrad 的软件工程与工作相关的 PG 认证