1. 程式人生 > >Java(一) -Core Java-(1)-字串處理

Java(一) -Core Java-(1)-字串處理

任何對String字串的操作均不改變原串

Java中將字串作為String型別物件來處理。當建立一個String物件時,被建立的字串是不能被改變的。每次需要改變字串時都要建立一個新的String物件來儲存新的內容。原始的字串不變。之所以採用這種方法是因為實現固定的,不可變的字串比實現可變的字串更高效。

String

String s1=”hello”;       存在常量池,只存一個。

String s2=new String(“hello”); 先在常量池中建立一個hello物件,同s1,然後new String()時,將hello物件複製到堆heap中,s2指向堆中的hello。引用存在棧中。

String方法

1、字串的長度

   int  length()

2、字串轉換

重寫toString()

       valueOf()對於簡單型別,valueOf()方法返回一個字串,該字串包含了該型別的值的字串。

3、字元抽取

       charAt():  返回指定索引處的 char 值。

       getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin):一次抽取多個字元到char[ ],不包括索引為srcEnd的char。

       getBytes():將字元儲存在位元組數組裡。

4、字串比較

        equals()和==:equals()方法是比較String物件中的字元(內容),“==”運算子是比較兩個物件是否引用同一例項(地址)。

        boolean startsWith(String prefix):判斷給定的String是否以特定的字串開始。

        boolean startsWith(String prefix,int toffset):判斷此字元從指定索引開始的字串是否以指定的字首開始。

        endsWith():判斷給定的String是否是以特定的字串結束。

        compareTo():用於比較字串大小,並考慮大小寫字母。

        compareIgnoreCase():比較字串大小並忽略大小寫字母。

5、查詢字串

        indexOf():查詢字元或子串第一次出現的位置

        lastIndexOf():查詢字元或者子串最後出現的位置

6、更改字串

因為String物件是不能改變的,當需要更改一個字串時,就必須將他複製到一個StringBuffered中,後者使用下列方法,在更改後會構造一個新的字串副本。

        substring(int startIndex):返回從startIndex開始到呼叫字串結束的子串的一個副本

        substring(int startIndex,int endIndex),指定起點和終點,返回這中間的字串,不包括終點

        concat():連線兩個字串,與“+”運算子相同。

        replace(char originial,char replacement):用一個字元在呼叫字串中所有出現另一個字元的地方進行替換。

        replace(CharSequence originial,CharSequence replacement):用一個字串序列替換另一個字串序列。

        trim():返回呼叫字串物件的一個副本,但是所有起始和結尾的空白符都被刪除了(字元中間的空白符未被刪除)。

7、改變字串中字元的大小寫

        toLowerCase():將所有字元改為小寫

        toUpperCase():將所有字元改為大寫

StringBuffer

StringBuffer是Strin的一個對等類,,提供了字串的許多功能,可增長、可改寫,執行緒安全。

1append():將任何資料型別的字串表示連線到呼叫的StringBuffer物件的末尾。

2inser(int indexString str):將一個字串插入到另一個字串指定位置中。

3reverse():顛倒StringBuffer物件中的字元

4、delete(int startIndex,int endIndex),刪除物件中一串字元,不包括終點

5、deleteCharAt(int index): 刪除指定位置字元。

StringBuilder

基本與StringBuffer等同,區別是它不是同步的,意味著他不是執行緒安全的,其優勢是更快的效能,在使用多執行緒時必須使用StringBuffer。

(相對情況下:效率StringBuilder>StringBuffer>>String)