java中字符串操作string、stringBuffer和stringBuilder的區別以及其相關操作技術

簡單來說:

1、基本概念,string字符串常量,長度不可變;stringBuffer字符串變量,長度可變(線程安全);stringBuilder字符串變量,長度可變(非線程安全);

2、執行效率,就單個字符串對象效率比較來說string>stringBuilder>stringBuffer;

舉個簡單的例子,string=“abc”+“def”+“ghi”;JVM在創建string對象時會認爲string=“abcdefghi”;執行效率相當快

相比之下stringBuffer來說stringBuffer    strBuff=new stringBuffer();strBuff.append("abc").append("def")+append("ghi");速度上來說是比不上string的。

但是如果需要創建多個string來說,stringBuffer是可變長度,效率比較爲stringBuilder>stringBuffer>string。

舉個例子:string    num1=“abc”;

                    string    num2=“def”;

                    string   num3=“ghi”;來說JVM要創建三個string對象,當三個對象使用完之後JVM還的對這三個對象自動回收(AutoClose),所以採用可變長度stringBuffer要效率高。

3、基本操作方法:stringBuffer,stringBuilder的操作一樣,下面只對stringBuffer操作和string操作作講解。

   1、三者之間的轉換問題: stringBuffer轉換string對象,string str=new string(stringBuffer strBuff);

     string轉換爲stringBuffer對象 stringBuffer strBuff=new stringBuffer(string str);

   2、我們最常見的Tostring方法,其實他是基本數據類型valueof()字符轉換方法中的子方法。

        charAt()單個字符轉換方法,char   charAt(int  index);例如 char ch;ch=“abc”.charAt(2);即把c賦值給ch變量。

        getChars()多個字符提取方法:一般形式爲  void getChars(int sourseState,int sourseEnd,Char target [ ],int targetStart);

         getBates()字符到字節轉換方法:一般形式  byte[ ] getBytes();

        toCharArray()字符轉換爲字符數組方法;一般形式 char [] toCharArray(0;

4.字符串比較,主要方法爲equals()內容比較方法,它與“==”是有區別的,後者在於對象的是否相等。

                           equalsIgnoreCase()不區分大小寫比較相等。

                           regionMatches()比較一段字符與另一段字符中的一段是否相等

 bollean regionMaches(int startindex,string str2,int str2StartIndex,int numChars);

 bollean regionMaches(bollean ignoreCase,int startindex,string str2,int str2StartIndex,int numChars);ignoresCase爲true表示則忽略大小寫,否則大小寫有意義。

其他方法讀者自己領悟



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章