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 会创建可变对象。 因此,它可以被改变。
有趣的点
- 它扩展了 Object 类。
- StringBuffer在java中实现的接口有Appendable、Serializable和CharSequence。
- StringBuffer 的方法可以在任何需要的地方同步。 这意味着所有操作的行为都好像它们以某种顺序发生一样。
- 当发生涉及源序列的操作时,此类仅在字符串缓冲区操作上同步,而不在源上同步。
- 从对象类继承的一些方法是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 校友身份,实用的实践顶点项目和顶级公司的工作协助。