StringBuilder的使用

文章详细介绍了Java中的StringBuilder类,包括它的概述、作用,特别是在字符串操作中的高效性能。通过示例代码展示了StringBuilder与String在拼接操作上的时间差异。此外,还列举了StringBuilder的构造方法、常用方法如append、reverse和toString等。文章还提供了两个案例,一是检查对称字符串,二是将int数组转换为特定格式的字符串。
摘要由CSDN通过智能技术生成

一、StringBuilder

1、概述:是一个可变的字符串类,可以看做一个容器

package StringBuilder;

public class text {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("红色");
        System.out.println(sb);
        sb.append("蓝色");
        System.out.println(sb);
        sb.append("绿色");
        System.out.println(sb);
    }
}

2、作用:提高字符串的操作效率

使用String拼接数字所花时间如下:

package StringBuilder;

public class text {
    public static void main(String[] args) {
        //获取1970年1月1日0时0分0秒到当前时间的毫秒值
        long start = System.currentTimeMillis();
        String s = "";
        for (int i = 1; i <= 50000; i++) {
            s += i;
        }
        System.out.println(s);
        long end = System.currentTimeMillis();
        System.out.println(end - start);
    }
}

 使用StringBuilder拼接数字所花时间如下:

package StringBuilder;

public class text {
    public static void main(String[] args) {
        //获取1970年1月1日0时0分0秒到当前时间的毫秒值
        long start = System.currentTimeMillis();
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 50000; i++) {
            sb.append(i);
        }
        System.out.println(sb);
        long end = System.currentTimeMillis();
        System.out.println(end - start);
    }
}

 3、构造方法

在API中可以看到,共有四种,常用的是以下两种:

(1)public StringBuilder( )    创建一个空白可变字符串对象,不含任何内容

(2)public StringBuilder(String str )     根据字符串的内容,创建可变字符串对象

package StringBuilder;

public class text {
    public static void main(String[] args) {
        //public StringBuilder( )    创建一个空白可变字符串对象,不含任何内容
        StringBuilder sb = new StringBuilder();
        System.out.println(sb);
        //public StringBuilder(String str )     根据字符串的内容,创建可变字符串对象
        StringBuilder sb1 = new StringBuilder("abc");
        System.out.println(sb1);
    }
}

4、常用方法

(1)public StringBuilder append(任意类型)     添加数据,并返回对象本身
(2)public StringBuilder reverse( )                     返回相反的字符序列
(3)public int length( )                                        返回长度(字符出现的个数)
(4)public String toString( )             通过toString( )就可以实现把StringBuilder转换为String

package StringBuilder;

public class text {
    public static void main(String[] args) {
        //public StringBuilder append(任意类型)  添加数据,并返回对象本身
        StringBuilder sb = new StringBuilder();
        /*sb.append(123);
        sb.append("abc");
        sb.append(true);*/
        //链式编程:如果一个方法返回的是对象类型,对象就可以继续向下调用方法
        sb.append(123).append("abc").append(true);
        System.out.println(sb);

        //public StringBuilder reverse( ) 返回相反的字符序列
        System.out.println("反转前:" + sb);
        sb.reverse();
        System.out.println("反转后:" + sb);

        //public int length( )        返回长度(字符出现的个数)
        System.out.println(sb.length());

        //public String toString( )     通过toString( )就可以实现把StringBuilder转换为String
        System.out.println(sb.toString());
    }
}

 案例:键盘接收一个字符串,判断是不是对称字符串,并在控制台打印是或不是

分析及代码如下:

1、键盘录入一个字符串,用Scanner实现
2、将键盘录入的字符串反转
3、使用反转后的字符串,和原字符串进行比对
4、如果相同,则输出是对称字符串,反之输出不是对称字符串

package StringBuilder;

import java.util.Scanner;

public class text对称字符串 {
    public static void main(String[] args) {
        //键盘接收一个字符串,判断是不是对称字符串,并在控制台打印是或不是
        //1、键盘录入
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个字符串:");
        String s = sc.next();
        //2、将录入的字符串反转
        //因为String没有reverse,所以要把字符串封装为StringBuilder,再调用reverse
        StringBuilder sb = new StringBuilder(s);
        sb.reverse();
        //3、使用反转后的字符串与原来的字符串进行比对
        //注意s和sb类型不同,直接相比会出错,要将sb转化为字符串类型
        if (s.equals(sb.toString())) {
            System.out.println("是对称字符串");
        } else {
            System.out.println("不是对称字符串");
        }
    }
}

5、StringBuilder和String 相互转化
1.StringBuilder转换为String
public String toString( ):             通过 toString( )就可以实现把StringBuilder转换为String
2.String 转换为StringBuilder
public String Builder(String s): 通过构造方法就可以实现把String转换为StringBuilder

案例:定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。 例如,数组为int[]arr={1,2,3};执行方法后的输出结果为:[1,2,3]

分析及代码如下:

1.定义一个int类型的数组,用静态初始化完成数组元素的初始化

2.定义一个方法,返回值类型String,参数列表int[] arr

3.在方法中用StringBuilder按照要求进行拼接,并把结果转成String 返回

4.调用方法,用一个变量接收结果

5.输出结果

package StringBuilder;

public class text {
    public static void main(String[] args) {
        /*需求:定义一个方法,把int数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法,并在控制台输出结果。
        例如,数组为int[]arr={1,2,3};执行方法后的输出结果为:[1,2,3]*/
        //1.定义一个int类型的数组,用静态初始化完成数组元素的初始化
        int[] arr = {1, 2, 3};
        //4.调用方法,用一个变量接收结果
        String s = arraytoString(arr);
        //5.输出结果
        System.out.println(s);
    }

    //2.定义一个方法,返回值类型String,参数列表int[] arr
    public static String arraytoString(int[] arr) {
        //3.在方法中用StringBuilder按照要求进行拼接,并把结果转成String 返回
        StringBuilder sb = new StringBuilder("[");
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1) {
                sb.append(arr[i]).append("]");
            } else {
                sb.append(arr[i]).append(",");
            }
        }
        return sb.toString();
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喝可乐的monkey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值