天天看點

Java String 類

怎麼描述string的重要性呢?我想我無論怎麼描述都沒辦法表達它的重要性,是以,認真學習string對于我們開發人員來說是非常重要的。

首先我們要明白,string類是用來操作和建立字元串的。比如說:

string str = “我是一個字元串”;

string str2 = new string(“我也是一個字元串”)

接着需要明白的也是最需要記住的,string不屬于java内置資料類型,也就是不屬于8種基本資料類型。string是一個對象,并且,string是一個非常特殊的現象,它有别的對象沒有的一些特征。

Java String 類

對于上面兩種建立字元串的方式我來具體的分析一下:

1、 對于string來說,有一個特殊的string pool,專門存儲字元串資料。

2、 string str = “我是一個字元串”的建立過程:首先、java會去到string pool 尋找有沒有一個值為“我是一個字元串”的東西,如果有,則傳回該東西的位置給str對象,如果沒有,則建立一個,并且把位置傳回。

3、 對于string str2 = new string(“我也是一個字元串”)來說,java是先在堆記憶體中建立一個 “我也是一個字元串”的記憶體區域,并且把該區域的位置傳回給str2,接着,還會再一次的去string pool裡面檢查是否有一個值為“我也是一個字元串”的東西,若沒有,則建立一個。

由此可知:

1、我們現在可以知道的是,直接吧一個字元串指派給一個string對象時,該字元串最多建立一次或者0次,為 new string(“…”)會建立1次或者是兩次字元串。

2、變量的名稱都是存儲在棧裡面的。

3、我們所持的變量(str str2)隻是一個具體對象的記憶體位址,這個位址也可以叫做句柄。

需要做出補充的是:

1、 string類已經對object類的equals方法進行了覆寫

2、 在比較兩個對象是否相等的時候,使用的用必須是equals方法,而不等使用“==”,我會在後續的寫作中進行說明。

string常用方法

(1)length() 字元串的長度

  例:char chars[]={'a','b'.'c'};

    string s=new string(chars);

    int len=s.length();

(2)charat() 截取一個字元

  例:char ch;

    ch="abc".charat(1); 傳回'b'

(3)getbytes()擷取對應位元組數組

(4)indexof()和lastindexof()

   indexof() 查找字元或者子串第一次出現的地方。

   lastindexof() 查找字元或者子串是後一次出現的地方。

(5)substring()  

  第二種是:string substring(int startindex,int endindex)

(6)concat() 連接配接兩個字元串

(7)replace() 替換

  它有兩種形式,第一種形式用一個字元在調用字元串中所有出現某個字元的地方進行替換,形式如下:

  string replace(char original,char replacement)

  例如:string s="hello".replace('l','w');

  第二種形式是用一個字元序列替換另一個字元序列,形式如下:

  string replace(charsequence original,charsequence replacement)

(8)trim() 去掉起始和結尾的空格

(9)valueof() 轉換為字元串

(10)tolowercase() 轉換為小寫

(11)touppercase() 轉換為大寫

(12)startswith()和endswith()  

更多方法請參考string的api