天天看點

黑馬程式員:String類和StringBuffer類的總結String StringBuffer

----------   android教育訓練、java教育訓練、期待與您交流! ----------

String

1.特性 

String s1 = “abc”;

s1是一個類類型變量,”abc”是一個對象

字元串最大的特點是:一旦被初始化就不會被改變==>存在于常量池中

黑馬程式員:String類和StringBuffer類的總結String StringBuffer

結果:

上述代碼中的s.replace産生的是一個新字元串:現在記憶體中存在兩個字元串

如果替換的字元不存在,則傳回的原串

黑馬程式員:String類和StringBuffer類的總結String StringBuffer

 s1= “kk”         

列印的結果肯定是kk,因為這不是“abc”發生改變,而是S1指向了新的位址”kk”

==和”equals”的差別

==

**可以用于比較基本資料類型,比較的就是基本資料類型的值是否相等。

**可以用于比較引用資料類型,比較的是對象的位址值是否相等。

equals

equals隻能用于比較引用資料類型的。

**Object提供的equals是用于比較對象位址值是否相同。

**自定義類中,如果重寫了equals方法,那麼就是按照你自己的需求來比較的。

String s1 = “abc”;

String s2 = new String(“abc”);

s1和s2的差別

s1建立了1個對象("abc”)

s2建立了2個對象(new和"abc”)

2.方法

1.擷取

         1.1 字元串中的包含的字元數,也就是字元串的長度。

                   int length():擷取長度。

         1.2 根據位置擷取位置上某個字元。

                   char charAt(int index):

         1.3 根據字元擷取該字元在字元串中位置。

                   int indexOf(int ch):傳回的是ch在字元串中第一次出現的位置。

                   int indexOf(int ch, int fromIndex) :從fromIndex指定位置開始,擷取ch在字元串中出現的位置。 

                   int indexOf(String str):傳回的是str在字元串中第一次出現的位置。

                   int indexOf(String str, int fromIndex) :從fromIndex指定位置開始,擷取str在字元串中出現的位置。 

                   //從末尾開始,用法同上

                   int lastIndexOf(int ch):

                   int lastIndexOf(int ch, int fromIndex)

                   lastIndexOf(String str)

                   lastIndexOf(String str, int fromIndex)             

2.判斷

         2.1 字元串中是否包含某一個子串。

                   boolean contains(str):

                  特殊之處:indexOf(str):可以索引str第一次出現位置,如果傳回-1.表示該str不在字元串中存在。

                                    是以,也可以用于對指定判斷是否包含。

                                     if(str.indexOf("aa")!=-1) 

                                    而且該方法即可以判斷,有可以擷取出現的位置。 

         2.2 字元中是否有内容。

                   boolean isEmpty():原理就是判斷長度是否為0.

        “”是一個對象 null是指向空

         2.3 字元串是否是以指定内容開頭。

                   boolean startsWith(str);

         2.4 字元串是否是以指定内容結尾。

                   boolean endsWith(str);

         2.5 判斷字元串内容是否相同。複寫了Object類中的equals方法。

                   boolean equals(str);

         2.6 判斷内容是否相同,并忽略大小寫。

                   boolean equalsIgnoreCase();       

3.轉換

         3.1 将字元數組轉成字元串。

                  構造函數:String(char[])

                                       String(char[],offset,count):将字元數組中的一部分轉成字元串。 

                  靜态方法:

                                     static String copyValueOf(char[]);

                                     static String copyValueOf(char[] data, int offset, int count)  

                                     static String valueOf(char[]):                  

         3.2 将字元串轉成字元數組。

                   char[] toCharArray():

         3.3 将位元組數組轉成字元串。

                            String(byte[])

                            String(byte[],offset,count):将位元組數組中的一部分轉成字元串。 

         3.4 将字元串轉成位元組數組。

                            byte[]  getBytes():

         3.5 将基本資料類型轉成字元串。

                   static String valueOf(int)

                   static String valueOf(double)

                   //3+"";//String.valueOf(3);

                  特殊:字元串和位元組數組在轉換過程中,是可以指定編碼表的。 

4.替換

         String replace(oldchar,newchar); 

5.切割

         String[] split(regex); 

6.子串==>擷取字元串中的一部分。

         String substring(begin);

         String substring(begin,end); 

7.轉換,去除空格,比較

         7.1 将字元串轉成大寫或則小寫。

                    String toUpperCase();

                    String toLowerCase(); 

         7.2 将字元串兩端的多個空格去除。

                   String trim(); 

         7.3 對兩個字元串進行自然順序的比較。

                   int compareTo(string);

 StringBuffer

1.字元串的組成原理就是通過該類實作的。

2.StringBuffer可以對字元串内容進行增删。

3.StringBuffer是一個容器。

4.很多方法與String相同。

5.StringBuffer是可變長度

==>StringBuffer與String最大的差別就是存儲在其中的字元串是可以删除的,String則是一旦生成就一直存在

黑馬程式員:String類和StringBuffer類的總結String StringBuffer

可以改變其中的值(與上面的String比較)sb和sb1指向的是同一對象

黑馬程式員:String類和StringBuffer類的總結String StringBuffer

StringBuffer是字元串緩沖區。是一個容器。

特點:

1,長度是可變化的。==>數組也是容器,但是長度是固定的

2,可以位元組操作多個資料類型。==>數組一次隻能操作一個資料類型

3,最終會通過toString方法變成字元串。

StringBuffer特有的方法

1,存儲。

         StringBuffer append():将指定資料作為參數添加到已有資料結尾處。

         StringBuffer insert(index,資料):可以将資料插入到指定index位置。

2,删除。

         StringBuffer delete(start,end):删除緩沖區中的資料,包含start,不包含end。

         StringBuffer deleteCharAt(index):删除指定位置的字元。

清空StringBuffer的緩存區的方法:sb.delete(0,sb.length())

3,擷取。

         char charAt(int index)

         int indexOf(String str)

         int lastIndexOf(String str)

         int length()

         String substring(int start, int end)  

4,修改。

         StringBuffer replace(start,end,string);

         void setCharAt(int index, char ch) ;

5,反轉。

         StringBuffer reverse(); 

6,

         将緩沖區中指定資料存儲到指定字元數組中。

         void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)         

JDK1.5 版本之後出現了StringBuilder. 

StringBuffer是線程同步。

StringBuilder是線程不同步。 

以後開發,建議使用StringBuilder

 java選擇更新考慮的三個因素:

1,提高效率。

2,簡化書寫。

3,提高安全性。

----------   android教育訓練、java教育訓練、期待與您交流! ----------

詳情請檢視:http://edu.csdn.net/heima/