* 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("----")); }}