Java字符串08——stringBuilder

  1. 为什么学习stringBuilder?

概述:

stringbuilder可以看成一个容器,创建之后里面的内容是可以改变的

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

  1. 构造方法

方法名

说明

public stringBuilder append (任意类型)

添加数据返回对象

public stringBuilder reverse()

反转容器中的内容

public int length()

返回长度(字符串出现的个数)

pubilc string toString

通过toString就可以吧stringBuilder转换成string

  1. 代码练习

说明:

  • stringBulider是Java已经写好的一个类

所以在底层进行了一些特殊的处理

打印出来的并不是地址值而是一个属性值

  • 用空参创造一个容器对象这个对象一开始是没有任何数据的

    public static void main(String[] args) {
        //创建一个stringBuilder对象
        StringBuilder sb = new StringBuilder("小橙");
        //添加元素
        sb.append(1);
        sb.append(2);
        sb.append(3);
        //反转(在容器内部进行了反转,但是和字符串不一样,字符串是不能够直接进行反转的)
        sb.reverse();
        //获取长度
        int length = sb.length();
        System.out.println(sb);
        System.out.println(length);
    }

运行结果

321橙小
5

单独练习tostring

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("123");
        sb.append("123");
        sb.append("123");
        sb.append("123");
        sb.append("123");
        sb.append("123");

//        sb只是一个帮助我们进行字符串操作的一个工具,这时候并不是一个字符串
        //所以我们需要他成为一个字符串的时候就应该使用tostring方法将其变成一个字符串
        String str = sb.toString();
        System.out.println(sb);
    }

运行结果如下
123123123123123
  1. 链式编程

依赖前一个方法的结果再去调用后面的方法

代码案例

 public static void main(String[] args) {
        int num = getString().substring(1).length();
        System.out.println(num);
    }
    public static String getString(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String zi = sc.next();
        return zi;
    }
  1. 练习案例

    public static void main(String[] args) {
//        需求
//        键盘接受一个字符串,程序判断出该字符串是否是对称字符串,并在控制台打印是或不是
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String str = sc.next();
        reverse(str);

    }
    public static void reverse(String str){
        StringBuilder sb = new StringBuilder();
        String str1 = sb.append(str).reverse().toString();
        if (str1.equals(str)){
            System.out.println("这是一个对称字符串!");
        }else
            System.out.println("这不是一个对称字符串!");
    }
  1. 应用场合

  • 字符串的拼接

  • 字符串的反转

  1. 拼接字符串

需求:定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回。

调用该方法,并在控制台输出结果。

例如:数组为int[] arr = {1,2,3};

执行方法后的输出结果为:[1, 2, 3]

首先下面是我自己写的代码

    public static void main(String[] args) {
//        定义一个字符串
        int[] arr = {45,52,6,3};
        System.out.println(pinjie(arr));
    }
//    定义一个方法进行字符串的拼接
    public static String pinjie(int[] arr){
        //循环遍历数组
        StringBuilder sb = new StringBuilder();
        sb.append('[');
        for (int i = 0; i < arr.length ; i++) {
            if (i == arr.length-1) {
                sb.append(arr[i]);
            }else{
                sb.append(arr[i]).append(',');
            }
        }
        sb.append(']');
        return sb.toString();
    }

下面的是老师写的代码:


public class StringBuilderDemo7 {
    public static void main(String[] args) {
        //1.定义数组
        int[] arr = {1,2,3};

        //2.调用方法把数组变成字符串
        String str = arrToString(arr);

        System.out.println(str);

    }


    public static String arrToString(int[] arr){
        StringBuilder sb = new StringBuilder();
        sb.append("[");

        for (int i = 0; i < arr.length; i++) {
            if(i == arr.length - 1){
                sb.append(arr[i]);
            }else{
                sb.append(arr[i]).append(", ");
            }
        }
        sb.append("]");

        return sb.toString();
    }
}

我的就是少考虑了经数组编程字符串,但是在方法体重已经将数组转换成了字符串,这里还是有点不理解为什么这一步要这样子做(老师写的第八行代码)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值