StringBuilder字符串缓冲区。
字符串是常量,它们的值在创建之后不能更改,字符串缓冲区支持可变的字符串。
构造方法
package demo01;
/*
java.lang.StringBuilder类:字符串缓冲区,可以提高字符串的效率
构造方法:
StringBuilder()构造一个不带任何字符的字符串生成器,其初始容量为16个字符
StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容
*/
public class Demo02StringBuilder {
public static void main(String[] args) {
//空参数构造方法
StringBuilder stringBuilder = new StringBuilder();
System.out.println(stringBuilder);//默认是一个空字符串,什么都没有
//带字符串的构造方法
StringBuilder str = new StringBuilder();
System.out.println("ab");//ab
}
}
成员方法
1.append()方法
package demo01;
/*
StringBuilder的常用方法:
public StringBuilder append(....),添加任意类型数据的字符串形式
并返回当前对象自身。
*/
public class Demo03StringBuilder {
public static void main(String[] args) {
//创建StringBuilder对象
StringBuilder bu = new StringBuilder();
//使用append方法往StringBuilder中添加数据
//append方法返回的是this,调用方法的对象bu,this==bu
/* StringBuilder bu2 = bu.append("yiyi");
System.out.println(bu);//yiyi
System.out.println(bu2);//yiyi
System.out.println(bu==bu2);//true:比较的是地址值*/
//使用append方法无须接收返回值
bu.append("y");
bu.append("j");
bu.append("9");
bu.append("21");
System.out.println( bu);//yj921
/*
链式编程
格式:方法返回值是一个对象,可以继续调用方法
*/
System.out.println("aa".toUpperCase().toLowerCase().toUpperCase());
bu.append("abc").append(2).append(false).append('易');
System.out.println(bu);//yj921abc2false易
}
}
2.toString()方法
package demo01;
/*
StringBuilder和String可以互相转换
String->StringBuilder:可以使用StringBuilder的构造方法
StringBuilder(String str)构造字符串生成器,并初始化为指定的字符串内容
StringBuilder->String可以使用StringBuilder中的toString()方法
public String toString(),将当前StringBuilder对象转换为String对象
*/
public class Demo04StringBuilder {
public static void main(String[] args) {
//String->StringBuilder
String str="jj";
System.out.println("哈哈:"+str);
StringBuilder bu=new StringBuilder(str);
//往StringBuilder中添加数据
bu.append("world");
System.out.println("String->StringBuilder:"+bu);//jjworld
// StringBuilder->String
String s=bu.toString();
System.out.println("StringBuilder->String:"+s);//jjworld
}
}