8.4 StringBuilder的介绍及用法(String 和StringBuilder区别)
* StringBuilder:是一个可变的字符串。字符串缓冲区类。
*
* String和StringBuilder的区别:
* String的内容是固定的。(方法区的内容)
* StringBuilder的内容是可变的。
*---------------------------------------------
* 构造方法:
* StringBuilder()
*
* 成员方法:
* public int capacity():返回当前容量
* public int length():返回长度(字符数)
*
* 容量:理论值
* 长度:实际值
*---------------------------------------------
* 添加功能
* public StringBuilder append(任意类型):添加数据,并返回自身对象
* StringBuilder不同于String,string是不能在原有方法区的字符串上更改,而前者是直接在原有方法区内增加字符串。
* 反转功能
* public StringBuilder reverse()
*
*--------------------------------------------
StringBuilder和String的相互转换
* StringBuilder -- String
* public String toString():通过toString()就可以实现把StringBuilder转成String
*
* String -- StringBuilder
* StringBuilder(String str):通过构造方法就可以实现把String转成StringBuilder
public class StringBuilderDemo { public static void main(String[] args) { //创建对象 StringBuilder sb = new StringBuilder(); System.out.println(sb.capacity()); System.out.println(sb.length()); } }
public class StringBuilder_append_reverse { public static void main(String[] args) { //创建对象 StringBuilder sb = new StringBuilder(); /* StringBuilder不同于String,string是不能在原有方法区的字符串上更改,而前者是直接在原有方法区内增加字符串。 public StringBuilder append(任意类型) StringBuilder sb2 = sb.append("hello"); System.out.println("sb:"+sb); System.out.println("sb2:"+sb2); System.out.println(sb == sb2); //true */ /* append比较特殊输出的是对象,对象后跟方法。所以可以链式编程。 sb.append("hello"); sb.append("world"); sb.append(true); sb.append(100); System.out.println(sb); */ //链式编程 sb.append("hello").append("world").append(true).append(100); System.out.println("sb:"+sb); //public StringBuilder reverse() sb.reverse(); System.out.println("sb:"+sb); } }
public class String_Stringbuilder { public static void main(String[] args) { //StringBuilder --- String /* StringBuilder sb = new StringBuilder(); sb.append("hello").append("world"); String s = sb.toString(); System.out.println(s); */ //String --- StringBuilder String s = "abcdefg"; StringBuilder sb = new StringBuilder(s); System.out.println(sb); System.out.println(sb.append("----")); } }