StringBuilder类
我们学习一个新的API都要:
看该类的解释说明和类的结构
学习该类的构造方法和成员方法
构造方法:
public StringBuilder()
:构造一个不带任何字符的字符串生成器,其初始容器为16个字符
public StringBuilder(String str)
:构造一个字符串生成器,并且初始化为指定字符串内容
public static void main(String[] args){
//有参构造
StringBuilder stringbuilder = new StringBuilder("abc");
// 空参构造
StringBuilder builder = new StringBuilder();
System.out.println("空参构造的字符串缓冲区:"+ builder);
StringBuilder builder1 = new StringBuilder();
System.out.println("空参构造的字符串缓冲区:"+ builder1);
//equals()
boolean result = builder.equals(builder);
System.out.println(result);
boolean result = builder.equals(builder1);
System.out.println(result1);
}
这里的equals方法用的是Object类里的equals方法
,判断的是否为同一个对象。相同返回true
,不同返回false
。
String类里的equals方法,
是重写Object类的方法
。builder
和builder1
虽然都为空,但是它们并不是同一个对象。当然会返回flase
。
常用方法
public StringBuilder append(....)
: 添加任意类型数据的字符串形式,并返回当前对象本身
public static void main(String[] args){
// 构建一个字符串缓冲区
StringBuilder bu = new StringBuilder();
//使用append方法返回的是this
StringBuilder bu2 = bu.append("abc");
System.out.println(bu);
System.out.println(bu2);
System.out.println(bu == bu2);//true == 比较的是地址,这时用equals方法
//使用append方法再添加一些数据,无需接收返回值
bu.append(1);
bu.append(true);
bu.append(3.14);
bu.append('王');
System.out.println(bu2);//bu2的内容值为:abc1true3.14王
/*
如果一个方法返回值是自己本身,那么我们可以进行链式调用,或者进行链式编程
如果一个方法返回值是对象,可以继续调用方法
*/
bu.append("abc").append(1).append(true).append(3.14).append('王');
System.out.println(bu);
String str = "abc".toUpperCase().toLowerCase().toUpperCase().toLowerCase();//对象已经改变
System.out.println(str);
System.out.println(str == "abc");//false
}
StringBuilder和String进行相互转换
StringBuilder
可以和String
进行相互转换
String ---> StringBuilder
的带参构造方法
StringBuilder(String str)
构造一个字符串生成器,并初始化为指定的字符串内容
StringBuilder--->String
可以使用StringBuilder
类中的toString()
方法
public String toString()
: 将当前的StringBuilder
对象转换成String
对象
public class StringBuilderDemo03{
public static void main(String[] args){
//String ---> StringBuilder
String str = "Hello World";
System.out.println("str: " + str);
StringBuilder bu = new StringBuilder(str);
//添加一些数据
bu.append("---Java");
System.out.println("bu:" + bu);
//StringBuilder --> String
String s = bu.toString();
System.out.println("s:" + s);
}
}