自由飛翔

          我在仰望,java之上

          導航

          <2011年8月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          公告

          離職進行中

          隨筆分類

          隨筆檔案

          文章檔案

          統計

          留言簿(2)

          我關注的blog

          閱讀排行榜

          評論排行榜

          String、StringBuffer、StringBuilder

          區別與聯系:
          1.StringBuffer是線程安全的,String和StringBuilder不是;
          2.StringBuffer和StringBuilder都是可變的,修改是針對自身的,而String是不可變的,修改一次就創建一個新的String對象;
          3.String和StringBuffer都是final類型;
          4.一般,效率上StringBuiler>StringBuffer>String
          5.StringBuilder是5.0新增的;
          用法:
          一、String
          1.常用構造函數:
          1)String(char[] value):
          eg:     
          char data[] = {'a', 'b', 'c'};
                String str = new String(data);
                2)String(String original):
                3)String(StringBuffer buffer): 
                4)String(StringBuilder builder): 
                5)String(byte[] bytes, String charsetName) :
                eg:
                String s_iso88591 = new String("中".getBytes("UTF-8"),"ISO8859-1");
                String s_utf8 = new String(s_iso88591.getBytes("ISO8859-1"),"UTF-8");
                注意:GBK編碼是一個中文2個字節,而UTF-8編碼是一個中文3個字節,
                ISO-8859-1編碼是一個字節對應一個字符;
                String gbk = "我來了";  
              String iso = new String(gbk.getBytes("UTF-8"),"ISO-8859-1"); 
                2.常用方法:
                1)charAt 方法,返回指定index的字符。
          String string ="123456789";
          char a =string.charAt(2);
          System.out.print(a);
            a=3
                2)indexOf(int ch)
          ch:unicode code point,如果字符串中沒有ch,則返回-1
          String ss = "abcde";
          System.out.println(ss.indexOf(2));
          System.out.println(ss.indexOf(98));
          結果:-1 1
          因為2對應的unicode在字符串ss中不存在,所以返回值-1,98對應的unicode 是b,所以返回值是index=1
               
                3)concat(String str)將參數連接到字符串的末尾
          concatenate 如鎖鏈般連續,使連鎖,連結
          string ="abc";
          System.out.print(string.concat("123"));
          結果:abc123
          如果str的length是0,那么這個String就會被返回。
                4)hashCode 返回字符串的hashCode值
          String string0 ="abc";
          String string1 ="abc";
          System.out.println(string1.hashCode());
          System.out.println(string1.hashCode());
          結果:
          96354
          96354
                5)contains(CharSequence s)是否包含參數
          String string0 ="abcdef";
          System.out.println( string0.contains("de"));
          結果:true
                6)startsWith(String perfix) 是否以perfix開頭,yes 返回true ,no返回false
          String string ="abcbd";
          System.out.println(    string.startsWith("abc"));
          System.out.println(    string.startsWith("Ab"));
          結果:true
          false
                7)endsWith(String suffix)是否以suffix結尾,yes 返回true ,no返回false
          String string ="abcde";
          System.out.println(    string.endsWith("e"));
          結果:true
                8)trim()去掉字符串的前后空格
          String string =" abc ";
          System.out.println(string.length()+","+    string.trim().length());
          結果:5,3
          9)length() 字符串的長度
             char chars[]={'a','b'.'c'};
              String s=new String(chars);
              int len=s.length();
          10)char[] toCharArray() 將一個字符串轉換成一個字符數組
          11)equals()和equalsIgnoreCase() 比較兩個字符串
          12)substring()  
          第一種是:String substring(int startIndex)
                  第二種是:String substring(int startIndex,int endIndex)
          13)toLowerCase() 和toUpperCase() 
          二、StringBuffer
          1、構造器:
          StringBuffer()
             StringBuffer(int size)
             StringBuffer(String str)
             StringBuffer(CharSequence chars)
          2、方法:
          1)append() 可把任何類型數據的字符串表示連接到調用的StringBuffer對象的末尾
          2)insert(int offset,Object) 在offset處插入Object對應的字符串到StringBuffer對象
          3)delete(int start,int end) 刪除字符
          4)indexOf()
          5)reverse() 顛倒StringBuffer對象中的字符
          6)length()
          7)toString()
          8)subString(int start)  或subString(int start,int end)截取子串
          三、StringBuilder
          1.構造器
          與StringBuffer相同
          2.常用的方法:
          與StringBuffer相同
          1)追加:Append
          2)插入:Insert
          3)刪除:Remove
          4)替換:Replace
          參考來源:
          http://www.aygfsteel.com/chenpengyi/archive/2006/05/04/44492.html
          http://zhuhuide2004.iteye.com/blog/562739
          http://www.iteye.com/topic/1097560
          http://www.cnblogs.com/crazyac/articles/2012791.html


          Gavin

          posted on 2011-08-21 01:00 GavinMiao 閱讀(904) 評論(0)  編輯  收藏 所屬分類: corejava

          主站蜘蛛池模板: 元阳县| 厦门市| 亳州市| 乐平市| 搜索| 建水县| 望都县| 莒南县| 兴仁县| 左权县| 南阳市| 永平县| 桑日县| 洱源县| 金堂县| 红原县| 平江县| 淮滨县| 普陀区| 抚远县| 河曲县| 张北县| 晋宁县| 石渠县| 开阳县| 来安县| 那曲县| 台州市| 晋宁县| 扶余县| 秦安县| 江西省| 云龙县| SHOW| 垦利县| 阳江市| 织金县| 贞丰县| 黑水县| 福泉市| 客服|