第十章 字符串
1.String類提供了9個構造函數,以便使用各種方式初始化String對象。其中的7個如下:
s1=new String();//無參數構造函數;
s2=new String(s);//參數為字符串的構造函數;
s3=new String(charArray);//參數為字符數組的函數;
s4=new String(charArray,6,3);//參數為字符數組并拷貝以第二個參數為起始位置,第三個參//數為拷貝字符數目作為初始值;
s5=new String(byteArray,4,4);//參數為比特數組并拷貝以第二個參數為起始位置,第三個參數為拷貝字符數目作為初始值;
s6=new String(byteArray);//參數為比特數組;
s7=new String(buffer);//參數為StringBuffer;
2.charAt方法返回String中指定位置的字符。如:String1.charAt(i); getChars方法取String的某一子串。如:String1.getChars(0,5,charArray,0);第一個參數為被拷貝字符串中的起始拷貝的下標,第二個參數是被拷貝字符的數目,第三個參數為目標字符數組,第四個參數為拷貝的字符放在字符數組中的起始下標。
3.字符串的比較:equals,equalsIgnoreCase,CompareTo和reginMathes,其中equalsIgnoreCase將忽略大小寫;CompareTo返回0時表示兩個字符串相等,返回-1表示調用此方法的字符串小于比較的字符串,返回1則相反;reginMathes方法比較兩個字符串對象的一部分是否相等,如:String1.regionMatches(0,s1,0,5);第一個參數是調用此方法的字符串的起始下標,第二個參數是要比較的字符串,第三個參數是要比較字符串中的起始下標,第四個參數是要比較的字符的個數。只有當指定個數的字符在按字典中發比較都相同時,才返回True。
在使用“==“比較引用時,假如兩個引用指向內存中的同一個對象,則結果為true;而在比較基本數據類型的指時,假如兩個值相同,則結果為true。
4.String類的startsWith和endsWith方法用于測試數組的元素是否以某些字符開始或結尾。如:string[i].startsWith(“st”); string[i].startsWith(“art”,2)判定strings中第i個字符串從下標2開始的子串是否以字符“art”開始;string[i].endsWith(“ed”);
5.indexOf方法在字符串中定位字符和子串,如:String1.indexOf(‘c’);String1.indexOf(‘a’,1);
其中第二個參數是在字符串中開始查找的起始下標。
6.substring方法用于從字符串中抽取子串,它有兩種形式,如String1.substring(20),其中20是拷貝子串在源字符串中的起始下標;String1.substring(0,6);第一個參數指定在源字符串中需拷貝的起始下標,第二個參數指定拷貝的字符數目。
7.String類的其他方法:s1.concat(s2);字符串s1連接s2,并不改變s1,s2;
s1.replace(‘l’,’L’);替換s1中所有的l為L;
s1.toUpperCase(); s1.toLowerCase();分別轉換為大寫小寫;
s1.trim(); 刪除s1開頭和末尾的空白字符;
s1.valueOf(l);可以使用多種類型的參數,并將多種類型的參數轉換為字符串;
8.String類的intern方法可以改善字符串比較的性能,在第一次對某個String對象調用String
類的intern方法時,它將返回一個指向內存中該String對象的引用。當下次對與原String對象內容相同的不同String對象進行intern調用時,將產生對原String對象的多個引用。這樣就可以進行高效的大型字符串的比較。一旦調用過intern方法,就可以用==比較String引用,而不必使用String類的equals等比較方法。
9.StringBuffer類,它可以創建和操縱動態字符串,即可以修改字符串,每個StringBuffer都能夠存貯由它的容量所指定的一些字符,假如超過了StringBuffer的容量,容量則會自動擴大以容納多出來的字符。它的構造函數由3種:buf1=new StringBuffer(); buf2=new StringBuff(6);其中6為初始容量;buf3=new StringBuffer(“hello”);
10.StringBuffer類的capacity方法返回它不另外分配空間可以存儲的字符數。注重:帶一個字符串參數的StringBuffer構造函數創建的StringBuffer對象的初始容量為參數字符串的長度加16。如:buf=new StringBuffer(“hello,how are you?”);返回的capacity為35。
buf.setLength(10);方法將StringBuffer的長度設置為10,假如指定的長度比當前的字符數目少,則超過指定長度的字符都將被舍棄;假如比當前字符數目多,則添加空字符至指定長度。
buf.ensureCapacity(75);將擴充StringBuffer的容量為至少75個字符。
buf.reverse();將倒置buf中的字符;
buf.append(b);將多種類型的數據的值添加到StringBuffer的末尾;實際上編譯器用它實現了用于連接字符串的“+”和“+=”運算符。
buf.insert(0,b); 方法用于將多種類型的數據插入到StringBuffer中第一個參數指定的參數之前。
buf.delete(2,6);方法將刪除以第一個參數為起始下標,第二個參數為字符數目的子串。
11.Character類的部分方法:
Character.isDefined(c);判定字符c在Unicode字符集中是否被定義,假如是則返回true,否則返回false;
Character.isjavaIdentifierPart(c);判定字符c是否能當作Java標識符的一部分;
Charater.forDigit(digit,radix);把整數digit轉換為由整數radix(基數)指定的數制系統中相應的字符。如:Charater.foDigit(13,16)則返回d;
12.StringTokenizer類將字符串分解成組成字符串的語言符號,它的方法coutTokens返回語句符號化的字符串中含有的語句符號的個數;hasMoreTokens方法判定是否還有語言符號;
nextToken調用字符串的形式返回下一個語言符號。
新聞熱點
疑難解答