首页 > 其他分享 >StringBuilder

StringBuilder

时间:2024-02-06 11:00:42浏览次数:25  
标签:String StringBuilder System 字符串 sb append

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

当我们在拼接字符串和反转字符串的时候会使用到

1 基本使用

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

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

        //反转
        sb.reverse();

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


        //打印
        //普及:
        //因为StringBuilder是Java已经写好的类
        //java在底层对他做了一些特殊处理。
        //打印对象不是地址值而是属性值。
        System.out.println(sb);
    }
}

2 链式编程

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

        //2.添加字符串
        sb.append("aaa").append("bbb").append("ccc").append("ddd");

        System.out.println(sb);//aaabbbcccddd

        //3.再把StringBuilder变回字符串
        String str = sb.toString();
        System.out.println(str);//aaabbbcccddd

    }
}

3 练习1:对称字符串

需求:

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

对称字符串:123321、111

非对称字符串:123123

代码示例:

public class StringBuilderDemo6 {
    //使用StringBuilder的场景:
    //1.字符串的拼接
    //2.字符串的反转

    public static void main(String[] args) {
        //1.键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();

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

        //3.比较
        if(str.equals(result)){
            System.out.println("当前字符串是对称字符串");
        }else{
            System.out.println("当前字符串不是对称字符串");
        }

    }
}

4 练习2:拼接字符串

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

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

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

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

代码示例:

package com.itheima.stringbuilderdemo;

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();
    }
}

标签:String,StringBuilder,System,字符串,sb,append
From: https://blog.51cto.com/u_16072958/9617953

相关文章

  • 【JAVA基础】String、StringBuilder和StringBuffer的区别——巨详细
    先给答案String是不可变的,StringBuilder和StringBuffer是可变的。而StringBuffer是线程安全的,而StringBuilder是非线程安全的。源码先看看jdk1.8中关于String、StringBuilder和StringBuffer部分的源码,我们看某个类或者某个属性是否不可变首先要看修饰类的关键字是什么,final表示不可......
  • StringBuilder 线程不安全,到底哪里不安全?
    StringBuilder线程不安全,到底哪里不安全?在Java中,字符串拼接是一个非常常见的操作,而对于频繁变动的字符串内容,使用StringBuilder是一个性能优化的选择。但是,StringBuilder在使用上存在一个很大的限制,它是线程不安全的。在多线程环境下,不正确的使用StringBuilder可能导致数据不一......
  • 面试官:请聊一聊String、StringBuilder、StringBuffer三者的区别
    面试官:“小伙子,在日常的写代码过程中,使用过String,StringBuilder和StringBuffer没?”我:“用过的呀!”面试官:“那你就来聊一聊,他们之间有什么区别,不同场景下如何选择吧”我:“好嘞!”在Java的开发过程中,使用频率最高的就是String字符串,但由于在字符串存储和拼接的过程中,涉及到很多场......
  • StringBuilder&正则表达式&日期类总结
    总结StringBuilder:可以改变的字符串底层:使用的是一个byte类型的数组,默认长度16如果超过16,数组会自动扩容扩容的时机:当添加的数据的长度大于此时数组的长度扩容的机制:当前数组长度的2倍+2构造方法:StringBuilder()构造一个没有字符的字符串构建器,初始容量为16个字符。/......
  • StringBuilder,一种可变的string
    StringBuilder是Java中用于操作字符串的可变对象。它允许在字符串中进行修改、添加、删除字符等操作,而不会像普通的字符串操作(例如使用String类)那样产生新的字符串对象。这种可变性使得在处理大量字符串拼接或修改时更加高效。与String不同,StringBuilder是可变的,这意味......
  • Groovy StringBuilder类踩坑
    今天在写脚本的时候发现一个奇怪的错误。经过猜想验证,发现原来Groovy过于灵活了,算是重复踩了之前的坑。Groovy特性描述如下:当Groovy脚本调用getFun()和setFun()方法时,会默认给这个类有一个FunTester的属性。反过来,如果这个类有Fun这个属性,那么get和set方法是不用显式写出来的。本......
  • 为什么 idea 建议去掉 StringBuilder,使用“+”拼接字符串
    为什么idea建议去掉StringBuilder,使用“+”拼接字符串目录为什么idea建议去掉StringBuilder,使用“+”拼接字符串1、普通拼接2、循环拼接总结各位小伙伴在字符串拼接时应该都见过下面这种提示:内容翻译:报告StringBuffer、StringBuilder或StringJoiner的任何用法,这些用法......
  • 为什么 IDEA 建议去掉 StringBuilder,而要使用 “+” 拼接字符串?
    作者:京东零售姜波来源:京东云开发者社区各位小伙伴在字符串拼接时应该都见过下面这种提示:内容翻译:报告StringBuffer、StringBuilder或StringJoiner的任何用法,这些用法可以用单个java.lang.String串联来替换。使用字符串串联可以使代码更短、更简单。只有当得到的串联至少与原......
  • 【Java基础】String类 && StringBuilder类
    String类String类特点字符串底层是字节类型的数组:byte[]Java程序中所有双引号字符串,都是String类的实例(对象)字符串在创建之后,其内容不可更改字符串虽然不可以改变,但是可以被共享(通过字符串常量池)字符串常量池(StringTable)-->当使用双引号创建字符串对象时,会检查常量池中是......
  • java中String、StringBuffer和StringBuilder的区别(简单介绍)
    简单介绍java中用于处理字符串常用的有三个类:1、java.lang.String2、java.lang.StringBuffer3、java.lang.StrungBuilder三者共同之处:都是final类,不允许被继承,主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着,且考虑到防止其中的参数被参数修改影响到其他的应用......