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的一個對等類,,提供了字串的許多功能,可增長、可改寫,執行緒安全。
1、append():將任何資料型別的字串表示連線到呼叫的StringBuffer物件的末尾。
2、inser(int index,String str):將一個字串插入到另一個字串指定位置中。
3、reverse():顛倒StringBuffer物件中的字元
4、delete(int startIndex,int endIndex),刪除物件中一串字元,不包括終點。
5、deleteCharAt(int index)
: 刪除指定位置字元。
StringBuilder類
基本與StringBuffer等同,區別是它不是同步的,意味著他不是執行緒安全的,其優勢是更快的效能,在使用多執行緒時必須使用StringBuffer。
(相對情況下:效率StringBuilder>StringBuffer>>String)