2020-10-12

一、StringBuilder概述

1.StringBuilder是一个可变的字符串类,可以把它看作一个容器,任何数据都可以进入这个类中,但是最后都会变成StringBuilder字符串类

2.作用:可以提高字符串的效率

3.常见的方法:append()、reverse()、toString()、length()

4.存储原理与String的有区别,调用的时候只会生成一次StringBuilder类型,故而更快

二、方法详解

1.append()

用于StringBulider类添加内容,有返回值,是对象本身

public static void main(String[] args) {
  StringBuilder sc=new StringBuilder();
  sc.append("绿色");
  System.out.println(sc);//输出是绿色
  sc.append("黄色");
  System.out.println(sc);//输出是绿色黄色
//因此,StringBuilder可以这样使用:
sc.append("绿色").append("黄色");
System.out.println(sc);//输出是绿色黄色

这正是StringBuilder与String不同之处,对于前者来说,堆内存中只需要创建一次StringBuilder类型就可以,后面不断地在其基础上进行修改即可,但是String作为不可变字符串,只能每次进行字符串拼接时都生成一个StringBuilder类型,从而效率较低,且String不可改变字符串内容,只能改变指向的对象。

2.reverse()

反转字符串,可以将StringBuilder类型的字符串进行反转,具有返回值

public static void main(String[] args) {
  StringBuilder sc=new StringBuilder();
  sc.append("绿色");
  System.out.println(sc);//输出是绿色
  sc.append("黄色");
  System.out.println(sc);//输出是绿色黄色
  sc.reverse();//输出色黄色绿

3.toString()

将StringBuilder类型转为String类型,无返回值,需要变量接收

StringBuilder sc=new StringBuilder();
sc.append("xjl is a girl");
String s=sc.toString();
System.out.println(s);

4.length()

StringBuilder类型的长度

三、StringBuilder和String

1.转化
StringBuildr类型的字符串可以通过toString()方法转化为String类型;

String类型可以通过在StringBuilder创建时带参转化,例如:

String s="xjl";
StringBuilder sc=new StringBuilder(s);
System.out.println(sc);

2.区别
两个的类型不同,因此在输出时如果变量类型不统一必须要先进行转化;

String属于不可变字符串但是StringBuilder是可变字符串。

四、题目练习

1.判断是否为对称字符,例如123321是对称字符,但是122不是

/*
思路:
1.Scanner键盘输入字符串
2.使用String存储键盘输入
3.将String类型字符串转为StringBuilder类型
4.利用reverse()方法进行反转
5.判断反转后是否与输入字符串相等
*/

package StringBuilder1;
import java.util.*;

public class Demo3StringBuilder {
    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 s1 = sb.toString();
        if(s.equals(s1))
        {
            System.out.println("是对称字符串");

        }
        else
            System.out.println("不是对称字符串");
    }
}

2、构造一个方法,将数组转化为字符串,例如int[] arr={1,2,3},输出为[1,2,3]

/*
思路:
1.静态初始化一个数组
2.计算数组长度,并使用StringBuilder()方法将数组内容存入其中
3.转化为字符串
 */
package StringBuilder1;
import java.util.*;
public class Demo4StringBuilder {
public static void main(String[] args) {
int[] arr={1,2,3};

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

        String s = sb.toString();
        return s;

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值