StringBulider

#StringBuilder的引入

为什么引入StringBulider

主要引入是因为String类型如:String c=“a”+“b”+“c”;浪费空间。String底层是被final修饰的字符数组。而StringBuilder是缓冲区,且没有被final修饰

StringBuilder两个构造方法

StringBuilder()构造一个没有参数,初始容量为16
StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容。

代码举例:

public class Demo01StringBuilder {
public static void main(String[] args) {
    //空参构造方法
    StringBuilder bu1 = new StringBuilder();
    System.out.println("bu1,"+bu1);//初值为空
    System.out.println(bu1.length());
    //带参数构造方法
    StringBuilder bu2 = new StringBuilder("abc");
    System.out.println("bu2,"+bu2);
}
}

显示效果:
bu1,
0
bu2,abc

stringBulider的append方法

代码:

public class Demo02StringBuilderappend {
public static void main(String[] args) {
    StringBuilder bu1 = new StringBuilder();
    StringBuilder bu2 = bu1.append("abc");
    boolean c=(bu1==bu2);//地址值的比较。实际情况是bu1的地址值传递给了bu2;
    System.out.println(bu1);
    System.out.println(bu2);
    System.out.println(c);
    bu1.append("defg");
    bu1.append("hijklmn");
    System.out.println(bu1);
    bu2.append("你是我心中的一首歌!");
    System.out.println(bu2);//验证了上面所说的将bu1的地址值传bu2,随让是两个变量但是用的是同一个地址
    bu1.append("驴肉火烧我喜欢吃!").append("我还喜欢吃肉夹馍!");//支持链式增加!
    System.out.println(bu1);
}
}

显示效果
abc
abc
true
abcdefghijklmn
abcdefghijklmn你是我心中的一首歌!
abcdefghijklmn你是我心中的一首歌!驴肉火烧我喜欢吃!我还喜欢吃肉夹馍!

StringBuilder与string的相互转换

代码:

public class Demo03StringBuildertostring {
public static void main(String[] args) {
    String str="我爱你!";
    System.out.println("str:"+str);
    StringBuilder bu1 = new StringBuilder(str);
    bu1.append("中国!!!");
    System.out.println("bu1:"+bu1);
    String c=bu1.toString();
    System.out.println("StringBuilder转换后成String(c):"+c);

}
}

显示效果:
str:我爱你!
bu1:我爱你!中国!!!
StringBuilder转换后成String©:我爱你!中国!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值