自学内容网 自学内容网

StringBuilder类

StringBuilder类:

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

优点:StringBuilder比String更适合做字符串的修改操作,效率会更高,代码也会更简洁。

 

构造器:

构造器说明
public StringBuilder()创建一个空白的可变的字符串对象,不包含任何内容
public StringBuilder(String str)创建一个指定字符串内容的可变字符串对象

 

常用方法:

方法名称说明
public StringBuilder append(任意类型)添加数据并返回StringBuilder对象本身
public StringBuilder reverse()将对象的内容反转
public int length()返回对象内容长度
public String toString()通过toString()就可以实现把StringBuilder转换为String

 
 

package com.ouyang.demo01;

public class demo {
    public static void main(String[] args) {
        //使用无参构造器创建对象
        StringBuilder sb=new StringBuilder();

        //使用有参构造器创建对象
        StringBuilder sb2=new StringBuilder("OYO");

        //append()方法
        sb.append("aaa");
        sb.append(111);
        sb.append(6.66);
        sb.append(true);
        sb.append('c');

        System.out.println("sb = " + sb);//sb = aaa1116.66truec

        //链式编程:append方法返回的也是 StringBuilder类型
        sb2.append("aaa").append(111).append(6.66).append(true).append('c');

        System.out.println("sb2 = " + sb2);//sb2 = OYOaaa1116.66truec


        //reverse()方法:反转StringBuilder中的内容
        sb.reverse();
        System.out.println("sb = " + sb);//sb = ceurt66.6111aaa

        //length()方法:返回 StringBuilder 长度
        System.out.println(sb.length());//15


        //toString()方法:把  StringBuilder 转换成字符串
        String str=sb.toString();
        System.out.println("str = " + str);//str = ceurt66.6111aaa
    }
}

 


 

案例:

 

案例1:

package com.ouyang.demo01;

public class deno02 {
    public static void main(String[] args) {

        int[] arr={11,22,33};
        String s=getStringBuilder(arr);
        System.out.println("s = " + s);
    }

    public static String getStringBuilder(int[] arr){
        StringBuilder sb=new StringBuilder("[");
        for (int i = 0; i < arr.length; i++) {
            sb.append(arr[i]);
            if(i==arr.length-1){
                sb.append("]");
                continue;
            }
            sb.append(",");
        }
        return sb.toString();
    }
}

 

 

案例2:

package com.ouyang.demo01;

import java.util.Scanner;

public class demo {
    /*
        键盘录入一个字符串,判断这个字符串是否为对称字符串
            例如:"上海自来水来自海上" , 就是一个对称的字符串
            "ABCA",就不是一个对称的字符串
     */

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        StringBuilder sb=new StringBuilder(sc.next());
        if(isSymmetry(sb)){
            System.out.println(sb+", 就是一个对称的字符串");
        }else {
            System.out.println(sb+", 就不是一个对称的字符串");

        }

    }
    public static boolean isSymmetry(StringBuilder sb){
        String s1=sb.toString();
        String s2=sb.reverse().toString();

        return s1.equals(s2);
    }
}

 

 

StringBuffer与StringBuilder:

​ 1.StringBuffer的用法与StringBuilder是一模一样的

​ 2.StringBuilder是线程不安全的StringBuffer是线程安全的

 
 

StringBuilder和String:

字符串相关的操作,如频繁的拼接、修改等,建议用StringBuidler?
 
String 是不可变字符串、频繁操作字符串会产生很多无用对象,性能差。
 
StringBuilder:是内容可变的字符串、拼接字符串性能好、代码优雅。


原文地址:https://blog.csdn.net/m0_57463864/article/details/140593799

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!