概述
關(guān)于String類的必知必會主要包括:
- String的常用函數(shù)
- equals()與==的區(qū)別
- String、StringBuffer 與 StringBuilder的區(qū)別
- Switch能否用string做參數(shù)?
1. String 常用函數(shù)
示意圖
2. equals()與==的區(qū)別
示意圖
附:
/**
* 附1:Object的equals()原函數(shù)實(shí)現(xiàn)
* 作用 = 比較的是對象的內(nèi)存地址(內(nèi)部實(shí)現(xiàn)實(shí)際 是 “==”,故作用同 “==”作用)
*/
public boolean equals (Object obj){
return (this == obj);
}
/**
* 附2:復(fù)寫了Object equals()原函數(shù)的String 類中的equals
* 作用:比較兩個字符串的內(nèi)容是否相同
*/
public boolean equals(Object obj){
// 若2者指向同一個地址,那么它們的內(nèi)容肯定相同
// 使用 “==” 比較
if (this == obj){
return true;
}
// 若不指向同一地址,則判斷規(guī)則為:
// 1. 類型是否相同( 即,傳入對象是否是String類型,采用 instanceof 比較)
// 2. 內(nèi)容是否相同 = 字符串序列是否相同(String類 內(nèi)部存儲 采用char[]實(shí)現(xiàn))
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length; // 注:比較次數(shù) = 第1個String對象的長度n,而不是傳入?yún)?shù)中的String對象長度
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
// 遍歷過程中只要有1個字符不同,就返回false
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
3. String、StringBuffer 與 StringBuilder的區(qū)別
3者 同樣用于儲存 & 操作字符串,區(qū)別如下:
示意圖
4. Switch能否用string做參數(shù)?
- 在
Java7
前,不支持;在Java 7后,支持
Java7
前支持的類型:枚舉、byte
、short
、char
、int
& 對應(yīng)的封裝類
至此,關(guān)于關(guān)于Java String類的必知必會講解完畢。
歡迎關(guān)注Carson_Ho的簡書!
分享Android技術(shù)干貨,追求短、平、快,但卻不缺深度。
請點(diǎn)贊!因?yàn)槟愕墓膭钍俏覍懽鞯淖畲髣恿Γ?/h1>
相關(guān)文章閱讀
Carson帶你學(xué)Android:學(xué)習(xí)方法
Carson帶你學(xué)Android:四大組件
Carson帶你學(xué)Android:自定義View
Carson帶你學(xué)Android:異步-多線程
Carson帶你學(xué)Android:性能優(yōu)化
Carson帶你學(xué)Android:動畫
相關(guān)文章閱讀
Carson帶你學(xué)Android:學(xué)習(xí)方法
Carson帶你學(xué)Android:四大組件
Carson帶你學(xué)Android:自定義View
Carson帶你學(xué)Android:異步-多線程
Carson帶你學(xué)Android:性能優(yōu)化
Carson帶你學(xué)Android:動畫