Java 基础(StringBuffer, StringBuilder)
StringBuffer类
stringBuffer 类不同于 String,其对象必须使用构造器生成。有三个构造器:
- stringBuffer(): 初始容量为16的字符串缓冲区
- StringBuffer(int size): 构造指定容量的字符串缓冲区
- StringBuffer(String str): 将内容初始化为指定字符串内容
String、 StringBuffer、StringBuilder 三者的异同
- String: 不可变的字符序列;底层使用char[]存储
- stringBuffer: 可变的字符序列;线程安全的,效率低; 底层使用char[]存储,创建了一个长度为16的数组。扩容的时候,若干添加的数据底层数组盛不下,那就需要扩容底层的数组,默认情况下,扩容为原来容量的2倍 +2,同时将原有数组中的元素复制到新的数组中。
- StringBuilder: 可变的字符序列; jdk5.e新增的,线程不安全的,效率高; 底层使用char[]存储
开发中建议大家使用: StringBuffer(int capacity)或 StringBuilder(int capacity)
stringBuffer的常用方法:
stringBuffer append(xxx): 提供了很多的append()方法,用于进行字符串拼接
stringBuffer delete(int start,int end): 删除指定位置的内容
StringBuffer replace(int start, int end,String str): 把[start, end)位置替换为str
stringBuffer insert(int offset,xxx): 在指定位置插入 xxx
StringBuffer reverse(): 把当前字符序列逆转
public int indexof (String str): 查找字符串中指定字符或字串首次出现的位置,返回索引值。该方法区分大小写
public string substring(int start,int end): 返回一个从start开始到end索引结束的左闭右开区间的子字符串
public int Length(): 返回字符串的实际长度
public char charAt(int n): 方法返回此序列中指定索引处的char值
public void setcharAt(int n ,char ch): 该方法的作用是修改对象中索引值为index位置的字符为新的字符ch
代码
package com.klvchen.java;
import org.junit.Test;
public class StringBufferBuilderTest {
@Test
public void test2(){
StringBuffer s1 = new StringBuffer("abc");
s1.append(1);
s1.append("1");
System.out.println(s1);
s1.delete(2,4);
System.out.println(s1);
s1.replace(2, 4, "hello");
s1.insert(2, false);
s1.reverse();
String s2 = s1.substring(1, 3);
System.out.println(s1);
System.out.println(s1.length());
System.out.println(s2);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2020-08-25 Flask 传递数据到前端页面
2020-08-25 CentOS7 搭建 ngrok
2020-08-25 Flask 获取 Form 表单的数据