首页 > 其他分享 >包装类、StringBuilder、StringBuffer、StringJoiner

包装类、StringBuilder、StringBuffer、StringJoiner

时间:2023-10-06 16:11:48浏览次数:38  
标签:String StringBuilder System StringJoiner StringBuffer println Integer out

1、怎么将Int类型的包装成对象

  使用Integer的valueOf方法

Integer  a2  ==  Integer.valueOf(12); 

2、自动装箱机制(可以自动把基本数据类型的数据转换成对象)

Integer  a3  =  12; 

  自动拆箱机制(可以自动把包装类型的对象转换成对应的基本数据类型)

int  a4  =  a3; 

3、应用

  泛型和集合不支持基本数据类型,就可以用包装类

// ArrayList<int> list = new ArrayList <>(); 会报错
ArrayList<Integer> list = new ArrayList <>();
list.add(12);    //自动装箱

int rs =  list.get(1);    //自动拆箱

4、包装类的其他常见操作

 (1)把基本的数据类型装换成字符串

Integer a = 23;
String rs1 = Integer.toString(a);   //"23"
System.out.println(rs1 + 1);    //231

另法:

String rs3 =  a + "";
System.out.println(rs3 + 1);    //也能实现字符串拼接

(2)把字符串类型的数值装换成对应的基本数据类型

        String ageStr = "29";
        //int ageI = Integer.parseInt(ageStr); //29
        int ageI = Integer.valueOf(ageStr); //29
        System.out.println(ageI + 1); //30

        String scoreStr = "99.5";
        //double score = Double.parseDouble(scoreStr); //99.5
        double score = Double.valueOf(scoreStr); //99.5
        System.out.println(score + 0.5);        

 

-----------------------------====================================================================================================

1、StringBuilder代表可变字符串对象,相当于是一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的

好处:StringBuilder比String更容易做字符串的修改操作,效率会更高,代码也会更简洁

2、

  使用:

     
StringBuilder s = new StringBuilder("itheima");// s "itheima"
     //1、拼接内容
        s.append(12);
        s.append("黑马");
        s.append("true");
        System.out.println(s); //itheima12黑马true

        //支持链式编程
        s.append(666).append("黑马2").append(666);
        System.out.println(s);//itheima12黑马true666黑马2666

        //2、反转操作
        s.reverse();
        System.out.println(s); //6662马黑。。。

        //3、返回字符串的长度
        System.out.println(s.length()); //24

        //4、把StringBuilder对象又转换成String类型
        String rs = s.toString();
        System.out.println(rs); //6662马黑。。。

好处:

  需求:拼接100万次abc

   (使用String效率低)

        //使用StringBuilder演示
        StringBuilder sb = new StringBuilder();
        for (int i = 1; i <= 1000000; i++) {
            sb.append("abc");
        }
        System.out.println(sb);
                

StringBuffer与Stringbuilder用法是一模一样的,但Stringbuilder是线程不安全的,StringBuffer是线程安全的


3、StringJoiner

  JDK8才开始有的,跟StringBuilder一样,也是用来操作字符串的,也可以看作是一个容器,创建之后里面的内容是可变的

  好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁

  常用方法和常用构造器

   

上述需求用StringJoiner写:

//使用StringJoiner
System.out.println(getArrayData(new int[] {11,22,33}));

//方法体简写
 StringJoiner s = new StringJoiner(",","[","]");
        for (int i = 0; i < arr.length; i++) {
            s.add(arr[i] + "");
        }
        return s.toString();

标签:String,StringBuilder,System,StringJoiner,StringBuffer,println,Integer,out
From: https://www.cnblogs.com/18191xq/p/17744484.html

相关文章

  • 深入了解Java中的StringJoiner类
    在Java编程中,字符串的拼接是一个常见的操作。Java提供了多种方法来实现字符串拼接,其中之一就是StringJoiner类。本文将详细介绍StringJoiner的用法和功能。StringJoiner简介StringJoiner是Java8引入的一个用于拼接字符串的工具类。它允许我们以指定的分隔符将一组字符串连接成一个......
  • 【Java 基础篇】StringBuilder的魔力:Java字符串处理探究
    在Java编程中,字符串是一个常见的数据类型,用于存储文本信息。然而,与字符串相关的操作可能会导致性能问题,因为字符串是不可变的,每次对字符串进行操作都会创建一个新的字符串对象。为了解决这个问题,Java提供了StringBuilder类,它允许我们有效地处理可变字符串。在本篇博客中,我们将详细......
  • 【Java 基础篇】Java StringBuffer详解:更高效的字符串处理
    在Java编程中,字符串是一个常见的数据类型,用于存储文本信息。然而,与字符串相关的操作可能会导致性能问题,因为字符串是不可变的,每次对字符串进行操作都会创建一个新的字符串对象。为了解决这个问题,Java提供了StringBuffer类,它允许我们有效地处理可变字符串。在本篇博客中,我们将详细讨......
  • Java 21的StringBuilder和StringBuffer新增了一个repeat方法
    发现Java21的StringBuilder和StringBuffer中多了repeat方法:/***@throwsIllegalArgumentException{@inheritDoc}**@since21*/@OverridepublicStringBuilderrepeat(intcodePoint,intcount){super.repeat(codePoint,co......
  • String与StringBuffer
    string与stringbuffer都是通过字符数组实现的。其中string的字符数组是final修饰的,所以字符数组不可以修改。stringbuffer的字符数组没有final修饰,所以字符数组可以修改。string与stringbuffer都是final修饰,只是限制他们所存储的引用地址不可修改。至于地址所指内容能不能修......
  • String、StringBuffer和StringBuilder的区别,ArrayList和linkedList的区别,HashMap和Has
    一、String、StringBuffer和StringBuilder的区别1.1相关介绍String是只读字符串,并不是基本数据类型,而是一个对象。从底层源码来看是一个final修饰的字符数组,所引用的字符串不能改变,一经定义无法再增删改。每次对String操作都会生成新的String对象。所以对于经常改变内容的字符串最......
  • 通过class字节码了解StringBuilder拼接字符串效率高的原因
    挺久没具体去看了,随手记一下吧。Stringstr="";for(inti=0;i<10;i++){str+=i;}这样的拼法,实际上从分析class的字节码来看,是在循环里面newStringBuffer对象,相当的耗。通过这样的分析,给新人解释,是最有效的了。还能提升一些了解java底层知识的兴趣。——《Java编程思......
  • StringBuilder类分享(2)
    一、StringBuilder说明StringBuilder是一个可变的字符序列。这个类提供了一个与StringBuffer兼容的API,但不保证同步,即StringBuilder不是线程安全的,而StringBuffer是线程安全的。显然,StringBuilder要运行的更快一点。这个类被设计为在字符串缓冲区所在的地方作为StringBuffer的临时......
  • StringBuilder类分享(1)
    一、StringBuilder说明StringBuilder是一个可变的字符序列。这个类提供了一个与StringBuffer兼容的API,但不保证同步,即StringBuilder不是线程安全的,而StringBuffer是线程安全的。显然,StringBuilder要运行的更快一点。这个类被设计为在字符串缓冲区所在的地方作为StringBuffer的临时......
  • 20230516 java.lang.StringBuilder
    介绍java.lang.StringBuilderpublicfinalclassStringBuilderextendsAbstractStringBuilderimplementsjava.io.Serializable,Comparable<StringBuilder>,CharSequence此类提供与StringBuffer兼容的API,但不保证线程安全append方法总是在构建器的末尾添加这些字符;......