AStringBuffer类似于String,但可以修改。StringBuffer可以安全地被多个线程使用。这些方法在必要时进行同步,以便在任何特定实例上进行的所有操作都表现为好像以某种串行顺序发生,该顺序与所涉及的每个单独线程进行的方法调用的顺序一致。
从JDK 1.5版本开始,该类已经添加了一个等效类,供单线程使用StringBuilder。StringBuilder通常,该类优先于该类使用,因为该类支持所有相同的操作,但是它更快,因为它不执行同步。
package org.nhooo.example.lang; public class StringBufferAppendReplace { public static void main(String[] args) { StringBuffer quote = new StringBuffer("an apple "); char a = 'a'; String day = " day"; StringBuffer sentences = new StringBuffer(" keep the doctor away"); // 将字符追加到StringBuffer quote.append(a); System.out.println("quote = " + quote.toString()); // 将字符串追加到StringBuffer quote.append(day); System.out.println("quote = " + quote.toString()); // 追加另一个StringBuffer quote.append(sentences); System.out.println("quote = " + quote.toString()); // 从StringBuffer开始替换子字符串 // 从索引= 3到索引= 8 quote.replace(3, 8, "orange"); System.out.println("quote = " + quote.toString()); } }
这是我们的程序输出:
quote = an apple a quote = an apple a day quote = an apple a day keep the doctor away quote = an orange a day keep the doctor away