Java StringBuffer 和 StringBuilder 类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
常见方法:
1 package demo1;
2
3 import org.junit.Test;
4
5 public class TestStringBuffer {
6
7 @Test
8 public void test(){
9 //StringBuffer:可变字符串,可以在原有字符串值的基础上进行更改
10 //String:不可变,如果要要更改字符串的内容,会拿着更改后的字符串去字符串常量池去找,如果有,直接把地址值拿过来
11 //如果没有,创建一块新的内存保存更改后的字符串
12
13 //1.用法
14 StringBuffer sb=new StringBuffer();
15 //2.添加 append():追加
16 sb.append("小白");//数据库sql文件
17 sb.append(",你很白吗?");
18 sb.append("select student.* from student inner join classinfo");
19 sb.append(" on student.cid=classinfo.cid");
20 sb.append(" where cname='实验1班' and sname='小白'");
21 System.out.println(sb);
22 //3.insert(index,str):根据index的索引值讲str字符串添加到某个字符串的指定位置
23 sb.insert(0, "啊!");
24 System.out.println(sb);
25
26 //4.delete(start,end):包含头不包含尾
27 sb.delete(8, 10);
28 System.out.println(sb);
29 System.out.println("-----------------------");
30 sb.deleteCharAt(1);
31 System.out.println(sb);
32 }
33
34 }
运行截图:
方法详见:https://www.runoob.com/java/java-string.html