- StringBuilder类是java.lang包下的,所以不要导包。
- StringBuilder类是一个可变的字符串,字符串缓冲区类。StringBuilder类是一个可变的字符串,字符串缓冲区类。
- String和StringBuilder类的区别:
String的内容是固定的,每次拼接都会产生一个新的字符串对象,放在方法区的常量池中。
StringBuilder的内容是可变的,每次拼接字符串自始至终都是同一个StringBuilder容器。 - StringBuilder的构造方法和成员方法
public static void main(String[] args) {
StringBuilder sb= new StringBuilder();
System.out.println("sb:"+sb);
//public int capacity():返回当前容量
System.out.println("sb.capacity():"+sb.capacity());
//public int length()返回长度(字符数)
System.out.println("sb.length():"+sb.length());
}
输出结果:
注意: StringBuilder对象打印出来的不是地址,而是地址中的内容。容量是可以放16个字符,长度是指当前对象中有多少个字符。
sb:
sb.capacity():16
sb.length():0
- 添加功能:
public StringBuilder append(任意类型):添加数据,被返回自身对象
public static void main(String[] args) {
StringBuilder sb= new StringBuilder();
System.out.println("sb:"+sb);
StringBuilder sb2 =sb.append("hello");
System.out.println("sb:"+sb);
System.out.println("sb2:"+sb2);
System.out.println("----------------");
sb.append(false);
sb.append(100);
System.out.println("sb:"+sb);
System.out.println("-----------------");
//链式
sb.append(true).append('A').append(123).append("world");
System.out.println("链式:"+sb);
}
输出结果:
sb:
sb:hello
sb2:hello
----------------
sb:hellofalse100
-----------------
链式:hellofalse100trueA123world
注意: append返回的是StringBuilder对象。
- 反转功能
public StringBuilder reverse()
public static void main(String[] args) {
StringBuilder sb= new StringBuilder();
sb.append(true).append('A').append(123).append("world");
System.out.println("sb:"+sb);
sb.reverse();
System.out.println("sb反转之后:"+sb);
}
输出结果:
sb:trueA123world
sb反转之后:dlrow321Aeurt
- StringBuilder和string的转换
StringBuilder转换成String :public String toString()
String转换成StringBuilder:StringBuilder(String str)
public static void main(String[] args) {
StringBuilder sb= new StringBuilder();
sb.append(true).append('A').append(123).append("world");
String s = sb.toString();
System.out.println("s:"+s);
System.out.println("---------------");
String s2 = "hello world";
StringBuilder sb2 = new StringBuilder(s2);
System.out.println("sb2:"+sb2);
}
输出结果:
s:trueA123world
---------------
sb2:hello world