String、StringBuffer、StringBuilder

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 }