StringBuilder 与 Stringjoiner

本文详细介绍了Java中的StringBuilder类的使用,包括构造方法、成员方法示例,以及如何在IDEA中操作。此外,还讲解了StringJoiner类及其构造方法和链式编程的应用。通过实例展示了字符串的拼接、反转和长度计算等操作。
摘要由CSDN通过智能技术生成

什么是StringBuilder?

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

构造方法

成员方法

用IDEA来实现:

1.简单的添加,反转和获得长度

public class StringBuilderDemo1 {
    public static void main(String[] args) {
        //StringBuilder
        /*注意:因为StringBuilder是java已经写好的类,
        Java在底层对他做了一些特殊处理;打印对象不是地址值而是属性*/
        //1.创建对象
        StringBuilder sb = new StringBuilder("要开心");

        //2.添加元素
        sb.append(1);
        sb.append(9.9);
        sb.append(true);

        //反转
        sb.reverse();

        //获取长度
        int len = sb.length();

        System.out.println(sb);
        System.out.println(len);
    }
}

2.使用toString方法将StringBuilder中sb对象变成字符串

public class StringBuilderDemo2 {
    public static void main(String[] args) {
        //1.创建对象
        StringBuilder sb = new StringBuilder();

        //2.添加字符串
        sb.append("2024");
        sb.append("一");
        sb.append("定");
        sb.append("要");
        sb.append("开");
        sb.append("心");
        sb.append("呀");
        sb.append("!");

        //System.out.println(sb);
        /*sb是StringBuilder类型的容器!!!帮助我们操作字符串的工具
                所以sb不能被当作是字符串*/
        //所以还需要把StringBuilder变回字符串才可以
        //3.把StringBuilder变回字符串
        String str = sb.toString();
        System.out.println(str);
        //变成字符串之后就可以用字符串里面的其他方法了
    }
}

3.了解什么是链式编程

import java.util.Scanner;

public class StringBuilderDemo3 {
    public static void main(String[] args) {
        /*链式编程:
        当我们在调用一个方法的时候,不需要用变量接收他的结果,
        可以继续调用其他方法*/
        int len = getString().substring(1).replace("王义凡", "你要幸福").length();
        System.out.println(len);
    }



    public static String getString(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符:");
        String str = sc.next();
        return str;
    }
}

注意:

使用StringBuilder的场景:
1.字符串的拼接
2.字符串的反转

4.练习:判断字符串是否对称

import java.util.Scanner;

public class StringBuilderDemo4 {
    public static void main(String[] args) {
        /*使用StringBuilder的场景:
        1.字符串的拼接
        2.字符串的反转*/


        //判断字符串是否对称
        //1。分析:键盘录入字符串;判断是否对称;控制台打印是或不是
        //对称:正着和反着是一样的

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String str = sc.next();

        //2.反转键盘录入的字符串
        String result = new StringBuilder().append(str).reverse().toString();

        System.out.println(result);
        //3.比较abc
        if(str.equals(result)){
            System.out.println("是");
        }else {
            System.out.println("不是");
        }
    }

}

5.练习:定义一个方法,拼接字符串

不使用String Builder:

public class StringDemo7 {
    public static void main(String[] args) {
        //拼接字符串
        /*定义一个方法
        1.我要干嘛? ---遍历数组并拼接成一个字符串
        2.我干这件事需要什么才能完成? ---数组
        3.我干完了是否要把结果返回给调用处 ---返回一个拼接之后的字符串
            如果调用处需要继续使用,那么必须返回
            如果调用处不需要继续使用,那么可以返回也可以不返回  */

        //定义一个数组
        int[] arr = {1,2,3};
        //调用方法
        String str = arrToString(arr);
        //输出打印
        System.out.println(str);
    }
    public static String arrToString(int[] arr){
        if (arr == null){
            return "";
        }

        if (arr.length == 0){
            return "[]";
        }
        String result = "[";//拼接后结果的左括号 数组从[开始拼接
        //当代码执行到这里表示什么?
        //表示数组不是null,也不是长度为0的
        for (int i = 0; i < arr.length; i++) {
            //i --> 索引  arr[i] --> 元素
            if (i == arr.length - 1){
                //拼接最后一个元素后面不加,
                result = result +arr[i];
            }else{
                //其余元素之间加,
                result = result + arr[i] + ", ";
            }
        }
        //拼接最后的]
        result = result + "]";
        return result;
    }
}

 使用StringBuilder:

public class StringBuilderDemo5 {
    public static void main(String[] args) {
        //定义一个方法,拼接字符串  不用stringbuilder -->StringDemo7
        //1.定义数组
        int[] arr = {1,2,3};
        //2.调用发放把数组变成字符串
        String str = arrToString(arr);
        System.out.println(str);
    }

    public static String arrToString(int[] arr){
        //首先创建一个sb对象
        //1.将[拼接进去
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        //String  result = "";
        for (int i = 0; i < arr.length; i++) {
            if (i == arr.length - 1){
                sb.append(arr[i]).append("]");
            }else {
                sb.append(arr[i]).append(", ");
            }
            //result = sb.toString();
        }
        //return result;
        return sb.toString();

    }
}

什么是StringJoiner?

用这个类首先要创建这个类的对象!

构造方法

没有空参构造!

成员方法

也可以使用链式编程的思想。

用IDEA来实现:

简单的创建对象指定间隔符号,添加元素

import java.util.StringJoiner;

public class StringJoinerDemo1 {
    public static void main(String[] args) {
        //1.创建一个对象,并指定中间的间隔符号
        StringJoiner sj = new StringJoiner("---");
        //2.添加元素
        sj.add("aaa").add("bbb").add("ccc");//不能添加整数,目前为止只能添加字符串,
        // 结果就是StringJoiner的一个容器对象
        //3.打印结果
        System.out.println(sj);
        System.out.println(sj.toString());
    }
}

 

import java.util.StringJoiner;

public class StringJoinerDemo2 {
    public static void main(String[] args) {
        //1.创建对象
        StringJoiner sj = new StringJoiner(", ","[","]");
        //2.添加元素
        sj.add("aaa").add("bbb").add("ccc");

        int len = sj.length();
        System.out.println(len);
        //3.打印
        System.out.println(sj);
    }
}

总结

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值