StringBuilder的基本操作

base黑马程序员

目录

一、StringBuilder的作用场景

二、StringBuilder构造方法

三、StringBuilder常用方法

四、链式编程

五、StringBuilder综合实例


一、StringBuilder的作用场景

1、字符串的拼接

2、字符串的反转

StringBuilder的作用是可以提高字符串的操作效率。

例如在传统拼接字符串的操作上。

String s1 = "aaa";
String s2 = "bbb";
String s3 = "ccc";
String s4 = "ddd";
String s5 = "eee";
String s6 = s1 + s2 + s3 + s4 + s5;

像以上这样拼接的话,s1+s2 会产生一个新的字符串,新的字符串再和s3拼接,就又产生一个新的字符串。如此反复下去,非常影响效率。

下面是使用传统字符串拼接方法的具体代码:

public class StringBuilderTest1 {

    public static void main(String[] args) {
        
        String s= "";
        for (int i = 0; i < 1000000; i++) {
            s = s +"夏天的冬雪";
        }
        System.out.println(s);
        
    }
    
}

而StringBuilder可以看成是一个容器,里面的的内容是可以发生改变的。

在整个字符串的拼接过程中只有一个StringBuilder的对象,不会产生没有用的字符串,所以StringBuilder在拼接字符串上的效率会更高。

下面是使用SpringBuilder方式拼接字符串的具体代码:

public class StringBuilderTest2 {

    public static void main(String[] args) {

        StringBuilder sb= new StringBuilder("");
        for (int i = 0; i < 1000000; i++) {
            sb.append("夏天的冬雪");
        }
        System.out.println(sb);

    }

}

二、StringBuilder构造方法

public StringBuilder() //创建的是空白可变字符串对象,不包含任何内容
public StringBuilder(String str) //根据字符串的内容,来创建可变字符串对象

如果使用无参构造方法进行创建,StringBuilder容器中任何值都没有。

 使用有参构造方法创建,SpringBuilder容器中就会有一个初始值“abc”。

三、StringBuilder常用方法

public StringBuilder append(任意类型) //添加数据,并且返回对象本身。
public StringBuilder reverse() //反转容器中的内容。
public int length() //返回长度(字符出现的个数)。
public String toString() //通过 toString()方法把StringBuilder转换为String类型。

四、链式编程

当调用一个方法时,不需要使用变量来接收它的结果,而是可以继续调用其他方法。例如下面的代码:

public class ChainedTest{
     public static void main(String[] args){
           int len = getString().substring(1).replace("d","D").length();
      }

     public static String getString(){
          return "chained test demo......";
     }
}

这是因为getString()方法的返回值是String类型的,而String类型是可以直接调用substring()方法,substring()方法的返回值也是String类型的,String类型也是可以直接调用replace()方法。

换句话说,方法返回的值,不用变量去接收了,而是直接拿着方法返回的值,去调用这种返回值类型所能调用的方法。

五、StringBuilder综合实例

public class StringBuilderTest3 {

    public static void main(String[] args) {
        //创建StringBuilder对象
        StringBuilder sb = new StringBuilder("abc");

        //添加元素
        //StringBuilder类型的变量可以调用append()方法,
        //而append()方法的返回值也是StringBuilder类型,
        //所以也可以再次去调用append()方法。这里就用到了链式编程。
        sb.append(1).append("abc").append(2.5);
        System.out.println("添加元素后的结果:"+sb);

        //反转添加的元素
        sb.reverse();
        System.out.println("元素反转后的结果:"+sb);

        //获取长度
        int len = sb.length();
        System.out.println("获取元素的长度:"+len);

        //转换成字符串进行打印
        String string = sb.toString();
        System.out.println("转换成字符串后的结果:"+string);
    }
}

实现效果:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值