String 類型的初始化的三種常見手法:
1、使用new 關鍵字的話,就可以直接在構造函數(shù)中傳入String類型的參數(shù),例如:String name = new String("Name");
2、也還可以以char[]類型的參數(shù)對構造函數(shù)的形參賦值,例如:char[] te = {'a','a','b'};String s = new String(ch);
3、也還可以使用byte[]數(shù)組 實現(xiàn)String構造函數(shù)的初始化,其中byte的類型就是以一個一個字節(jié)數(shù)據(jù)類型的大小范圍內(nèi)賦值。其值在0~255之間變化,其中每兩個字節(jié)數(shù)據(jù)類型組成一個漢字,比如-61和-26就組成“面”這個字,當然這是根據(jù)具體的中文編碼類型來判斷一個漢字是占用幾個字節(jié)。具體請查看GB2312和GBK 以及UTF-8 對中文進行編碼的細則
4、還可以對char 類型的數(shù)組中從某個元素起開始取值到從這個元素開始去多少個字符;同理對byte類型的數(shù)組也同樣適合。
例如:char[] te = {'a','a','b'}; String s = new String(ch,0,3);s 的結果值為:aab
但是有一點需注意:結束的值不能超過數(shù)組類型的長度;也即 offset+length < 字符數(shù)組.length
如果超過了字符數(shù)組的長度,這個時候編譯不會報錯,這是因為在編譯階段,編譯器只檢查語義和語法上的錯誤。但運行結果讓人出乎意料的:此時會出現(xiàn)StringIndexOutOfBoundsException異常。這一點切記!這也是在開發(fā)中通常隱藏的比較深的一類錯誤,即運行期的錯誤,也叫邏輯上的錯誤。這類錯誤一般是比較難查找的,所以要求我們每位程序員在編代碼的時候格外小心,的注意安全呀!
新聞熱點
疑難解答