Carson帶你學(xué)Java:關(guān)于String類的必知必會(huì)

概述

關(guān)于String類的必知必會(huì)主要包括:

  • 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
   * 作用:比較兩個(gè)字符串的內(nèi)容是否相同
   */
public boolean equals(Object obj){
  // 若2者指向同一個(gè)地址,那么它們的內(nèi)容肯定相同
  // 使用 “==” 比較
  if (this == obj){
    return true;
   }

  // 若不指向同一地址,則判斷規(guī)則為:
      // 1. 類型是否相同( 即,傳入對象是否是String類型,采用 instanceof 比較)
      // 2. 內(nèi)容是否相同 = 字符串序列是否相同(String類 內(nèi)部存儲(chǔ) 采用char[]實(shí)現(xiàn))
      if (anObject instanceof String) {

                  String anotherString = (String)anObject;
                   int n = value.length; // 注:比較次數(shù) = 第1個(gè)String對象的長度n,而不是傳入?yún)?shù)中的String對象長度
                   if (n == anotherString.value.length) {
                   char v1[] = value;
                   char v2[] = anotherString.value;

                   // 遍歷過程中只要有1個(gè)字符不同,就返回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者 同樣用于儲(chǔ)存 & 操作字符串,區(qū)別如下:

示意圖

4. Switch能否用string做參數(shù)?

  • Java7 前,不支持;在Java 7后,支持

Java7 前支持的類型:枚舉、byte、short、char、int & 對應(yīng)的封裝類

至此,關(guān)于關(guān)于Java String類的必知必會(huì)講解完畢。


歡迎關(guān)注Carson_Ho的簡書!

分享Android技術(shù)干貨,追求短、平、快,但卻不缺深度


請點(diǎn)贊!因?yàn)槟愕墓膭?lì)是我寫作的最大動(dòng)力!

相關(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:動(dòng)畫

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容