Java学习第四天
一、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;
}
}