Java基础学习(六):StringBuilder、StringBuffer、String类方法汇总
一、为什么要学习StringBuilder、StringBuffer?
- 字符串拼接,删除,改动需要重新申请内存,重新复制对象,浪费空间与时间。
- StringBuilder、StringBuffer事先会分配一定的大小空间,字符串操作不需要重新分配内存。
- StringBuilder是非线程安全,StringBuffer是线程安全,前者效率高。
二、StringBuilder、StringBuffer的创建方法
StringBuilder()
默认16字节StringBuilder(int capacity)
自定义内存大小StringBuilder(String str )
输入字符串
示例:
public class first {
public static void main(String[] args) {
StringBuilder s1 = new StringBuilder();
StringBuilder s2 = new StringBuilder(32);
StringBuilder s3 = new StringBuilder("hahahaha");
System.out.println("s1 is :" + s1);
System.out.println("s2 is :" + s2);
System.out.println("s3 is :" + s3);
}
}
//---------------输出----------------
s1 is :
s2 is :
s3 is :hahahaha
三、StringBuilder常见操作
方法 | 功能描述 | 备注 |
---|---|---|
append() | 将基本类型数值和字符串数组转化成字符串,并添加到StringBuilder末端 | append有函数重载 |
insert() | 将基本类型数值和字符串数组转化成字符串,并插入到StringBuilder对象指定的索引位置,其他位置字符依次后移 | 传入两个入参,一个是插入位置,一个是插入的字符或字符串 |
delete(int start , int end) | 删除该对象指定索引范围的字符 | 改变了原字符串,左闭右开 |
charAt() | 返回StringBuilder对象序列中,入参索引位置的字符值 | |
capacity() | 返回当前容量,以字符为单位 | |
replace(int start , int end , String str) | 将指定范围的字符串替换成新的字符串 | 左闭右开 |
reverse() | 将字符串反转 | 返回StringBuilder对象,原来的对象被改变 |
toString() | 可以将对象内容打印出来 |
示例:
public class first {
public static void main(String[] args) {
StringBuilder s3 = new StringBuilder("hahahaha");
s3.append(",hello"); //输出:s3 is :hahahaha,hello
s3.insert(0, "GG"); //输出:s3 is :GGhahahaha,hello
s3.delete(2, 10); //输出:s3 is :GG,hello
System.out.println(s3.charAt(2)); //输出:,
s3.replace(0, 2, "i love you"); //输出:s3 is :i love you,hello
System.out.println(s3.reverse()); //输出:olleh,uoy evol i /n s3 is :olleh,uoy evol i
System.out.println("s3 is :" +s3);
}
}
StringBuffer与StringBuilder基本方法大概一样。