String類(lèi)和StringBuffer類(lèi)主要用來(lái)處理字符串的。
兩個(gè)類(lèi)提供了很多字符串的實(shí)用處理方法。
String類(lèi)是不可變的,一個(gè)String對象包含的字符串內容是永遠不會(huì )被改變的
StringBuffer類(lèi)是可變類(lèi),一個(gè)StringBuffer對象所包含的字符串內內容可以被添加和修改。
String類(lèi)的常用方法:
1: length(): 返回字符串的個(gè)數
2:char charAt(int index): 返回字符串index位置上的字符。
3:getChars(int srcBegin,int srcEnd,char dst[ ] ,int dstbegin): 從當前的字符串拷貝若干字符到參數
指定的字符數組 dst[ ] 中。 從srcBegin位置開(kāi)始取字符,到srcEnd -1位置結束,dstbegin 為提取字符
存放到字符數組中的起始位置。如果參數 dst 為null ,則會(huì )拋出 “空指針”異常 。
String s="0123456";
char[] chars=new char[3];
s.getChars(1,4,chars,0);
for(int i=0; i<chars.length;i++) {
System.out.println(chars[i]);
}
4: equals(object str)和 equalsIgnoreCase(object str): 判斷兩個(gè)字符串對象的內容是否相同。
兩個(gè)方法的區別在于:equalsIgnoreCase(object str)方法不區分字母的大小寫(xiě),而equals
(object str)方法則區分字母的大小寫(xiě)。
5:indexOf() 和lastIndexOf(): 在字符串中檢索特定字符或子字符串。 前者從字符串的首位開(kāi)始查找,
后者從字符串的末尾開(kāi)始查找。如果找到,就返回匹配的“位置”。
6: concat(String str): 把字符 str 附加在當前字符串的末尾。這個(gè)方法不會(huì )改變字符串的內容。
7:substring(); 返回一個(gè)字符串的一個(gè)子字符串,兩種重載形式:
public String substring(int beginIndex)
public String substring(int beinIndex, int endIndex)
8: replace(String a, String b) : 講字符串的 a 替換成為 b .
replaceAll(String regex, String replacement) : 替換源字符串中所有的 regex.
9: trim(): 把字符串首尾的空格刪除。
10: String valueOf() : 把基本類(lèi)型轉換為 Sting 類(lèi)型
注: String 類(lèi)提供的方法,丟更改字符串的都是產(chǎn)生一個(gè)新的子字符串,并不會(huì )更改源字符串的內
容。
StingBuffer 類(lèi):
StringBuffer類(lèi)表示字符串緩存。
常用方法:
1: length() : 返回字符串的字符個(gè)數。 用戶(hù)和 String 類(lèi)相同
2:append(); 向緩存區添加新的字符串
3:toString(); 返回緩存區內的字符串。
4:charAt(int index) 和 setCharAt(int index, char ch): 前者用法與 String 類(lèi)的相同。
后者則在字符串中的index 位置放置字符 ch .
5: getChars(int srcBegin,int srcEnd,char dst[ ] ,int dstbegin): 用法和 String 類(lèi)一樣
6:substring() : 用法和String 類(lèi)一樣。
7 : insert(int offset , String str) : 字符串中的 offset 位置插入字符串 str .
String 類(lèi) 和 StringBuffer 類(lèi)的比較:
相同:
1: 都是用來(lái)處理字符串的
2:都提供了 length() , toString() ,charAt() , substring() 方法 ,用法一樣
3:對于String 類(lèi) 和 StringBuffer 類(lèi),字符在字符串中的索引位置都從 0 開(kāi)始。
4:兩個(gè)類(lèi)的 substring( int beginIndex, int endIndex)方法都是用來(lái)截取字符串,且范圍都是從
beginIndex 開(kāi)始, 到 endIndex--1 為止。
不同:
1: String 類(lèi) 是不可變類(lèi) , StringBuffer 類(lèi) 是可變類(lèi)
String 類(lèi)提供的 比如 substring ,replace 等方法 都不會(huì )更改字符串內容,實(shí)際上是創(chuàng )建一個(gè)方法
所浮于特性的新字符串。 返回一個(gè)改變后內容的新字符串。
StringBuffer 的 appeng(),等方法都會(huì )改變字符緩沖區中的字符串內容。
2: String 類(lèi) 覆蓋了Object類(lèi)的 equals()方法
StringBuffer類(lèi)沒(méi)有覆蓋
3: 都覆蓋了Object()類(lèi)的 toString() 方法,實(shí)現不一樣
String類(lèi)的toString() 方法返回當前String實(shí)例本身的引用。
StringBuffer類(lèi)的toString方法返回一個(gè)以當前StringBuffer的緩沖區中的所有字符串為內容的新的
String對象的引用。
4: String 對象可以用 操作符 "+ " 進(jìn)行連接
StringBuffer 不能
本文來(lái)自CSDN博客,轉載請標明出處:http://blog.csdn.net/Lions711/archive/2007/04/21/1574113.aspx
聯(lián)系客服