StringBuilder 可以看成是一个容器,创建之后里面的内容是可变的
作用:提高字符串的操作效率 不会产生更多其他的中间字符串
//StringBuilder构造方法
//public StringBuilder() 创建一个空白可变字符串对象,不含有任何内容
StringBuilder str1=new StringBuilder(123); //capacity为容器容量大小
StringBuilder str2=new StringBuilder(); //空白字符串
//由于StringBuilder是java已经写好的类,Java在底层对他做了一些特殊处理,打印对象不是地址值,而是属性值。
System.out.println("str1:"+str1); //str1:
//public StringBuilder(String str) 根据字符串内容,来创建可变字符串对象
StringBuilder str3=new StringBuilder("Joker");
System.out.println(str3);
//public StringBuilder append(任意类型) 添加数据,并返回对象本身
str3.append(243624);
System.out.println(str3);
//public StringBuilder reverse() 反转容器中内容
str3.reverse();
System.out.println(str3);
str3.reverse();
//public int length() 返回长度(字符出现的个数)
System.out.println(str3.length());
//public String toString() 通过toString()就可以实现把StringBuilder转化为String
str3.toString();
System.out.println(str3);
StringBuilder默认创建一个长度为16的字节数组,若添加的内容长度小于16,直接存,若添加的内容大于16会扩容(原来的容量*2+2=34),若扩容之后还不够,则以实际长度为准。
//需求:键盘接收一个字符串,程序判断出该字符是否是对称字符串,并在控制台打印是或是不是
import java.util.Scanner;
public class 对称字符串 {
public static void main(String[] args){
int i=0;
while (i==0) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入你想要判断的字符串:");
String str = sc.next();
if (isSymmetry(str))
System.out.println("对称!");
else
System.out.println("不对称!");
System.out.println("是否继续?(y/n)");
String str2=sc.next();
if (str2.equalsIgnoreCase("n"))
i++;
}
}
public static boolean isSymmetry(String str){
StringBuilder str1=new StringBuilder(str);
if(str1.reverse().toString().equals(str))
return true;
else
return false;
}
}