• StringBuilder常用方法及与String的区别和联系


    StringBuilder概述

    StringBuilder是一个可变的字符串类,我们可以把它看成一个容器

    1.作用

    提高字符串的操作效率

    public class Demo1StringBuilder {
        public static void main(String[] args) {
            method2();
            //method1();
        }
    
        public static void method2() {
            //用时:11
            StringBuilder sb = new StringBuilder();
            long start = System.currentTimeMillis();
            for (int i = 1; i < 50000; i++) {
                sb.append(i);
            }
            System.out.println(sb);
            long end = System.currentTimeMillis();
            System.out.println("=========================================");
            System.out.printf(String.valueOf(end - start));
        }
    
        public static void method1() {
            //用时:878
            long start = System.currentTimeMillis();
            String s = "";
            for (int i = 1; i < 50000; i++) {
                s += i;
            }
            System.out.printf(s);
            long end = System.currentTimeMillis();
            System.out.printf("======================================");
            System.out.printf(String.valueOf(end - start));
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    2.常用构造方法

     StringBuilder sb = new StringBuilder();
     System.out.println(sb);
     StringBuilder sb1 = new StringBuilder("abc");
     System.out.println(sb1);
    
    • 1
    • 2
    • 3
    • 4

    3.常用方法

    4.StringBuilder和String区别

    String:内容是不可变的

    StringBuilder:内容是可变的

    5.对称字符串

    需求:键盘接收一个字符串,程序判断出该字符串是否是对称字符串,并在控制台打印是或不是

    对称字符串:123321、111

    非对称字符串:123123

    思路:

    ① 键盘录入一个字符串,用Scanner实现

    ② 将键盘录入的字符串反转

    ③ 使用反转的字符串与原字符串进行比对

    ④ 如果相同,则输出的是对称字符串,反之输出不是对称字符串

    public class Demo4StringBuilder {
        public static void main(String[] args) {
    
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入:");
            String s = sc.nextLine();
            StringBuilder sb = new StringBuilder(s);
            sb.reverse();
            String reverseStr = sb.toString();
            if (s.equals(reverseStr)){
                System.out.println(sb+"是对称字符串");
            }else {
                System.out.println(sb+"不是对称字符串");
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    6.StringBuilder和String的相互转换

    ① StringBuilder转换为String

    • public String toString():通过toString()就可以实现把StringBuilder转换为String

    ② String转换为StringBuilder

    • public StringBuilder(String s):通过构造方法就可以实现把Strig转换为StringBuilder

    7.拼接字符串

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

    思路:

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

    ② 定义一个方法,用于把int数组中的数据按照指定格式拼接成一个字符串返回。返回值类型是String,参数列表int[] arr

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

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

    ⑤ 输出结果

    public class Demo5StringBuilder {
        public static void main(String[] args) {
            int[] arr = {1, 2, 3};
            String s = arrayToString(arr);
            System.out.printf(s);
        }
    
        public static String arrayToString(int[] arr) {
            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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
  • 相关阅读:
    axios二次封装
    在线PDF查看器和PDF编辑器:GrapeCity Documents PDF (GcPdf)
    Leetcode 416、分割等和子集
    官宣|HelpLook现已入驻钉钉应用市场,助力企业知识管理知识
    Hbase 笔记
    【代码源每日一题Div1】好序列/BZOJ4059「启发式分治」
    mysql 忘记密码后重置
    谁有软件测试面试真题(完整答案)?正在找工作的可以收藏一下!
    Cookie基本使用 [JavaWeb][Servlet]
    Vue ElementUI 修改消息提示框样式—messageBox 的大小
  • 原文地址:https://blog.csdn.net/weixin_46665411/article/details/127833145