1)StringBuffer是线程安全的;StringBuilder非线程安全
2)三者在执行速度方面的比较:StringBuilder > StringBuffer > String
原因:String:字符串常量
StringBuffer:字符创变量
StringBuilder:字符创变量
3)例题
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
1 package test01; 2 3 class ShuZu { 4 5 public static void main(String[] args) { 6 StringBuffer buf = new StringBuffer(); 7 buf.append("we are happy"); 8 String str = replaceSpace(buf); 9 System.out.println(str); 10 } 11 12 private static String replaceSpace(StringBuffer buf) { 13 if(buf == null){ 14 return null; 15 } 16 StringBuilder buf01 = new StringBuilder(); 17 for(int i=0;i<buf.length();i++){ 18 if(buf.charAt(i) == ' '){ 19 buf01.append("%"); 20 buf01.append(2); 21 buf01.append(0); 22 }else{ 23 buf01.append(buf.charAt(i)); 24 } 25 } 26 return buf01.toString(); 27 } 28 }