天天看點

##字元串字元串

字元串

程式中所有的雙引号字元串,都是String類的對象。(就算沒new,也照樣是。)

特點

1.字元串的内容永不可變。【重點】

  • 下面的這種寫法,字元串的内容仍然是沒有改變的

    下面有兩個字元串:“Hello”,“Java”

    // strA當中儲存的位址值。

    // 本來位址值是Hello的0x666;

    // 後來位址變成了Java的0x999

    String strA = “Hello”;

    System.out.println(strA);//Hello

    strA = “Java”;

    System.out.println(strA);//Java

2.正是因為字元串不可改變,是以字元串是可以共享使用的。

3.字元串效果上相當于是char[]字元數組,但是底層原理是byte[]位元組數組

構造方法

public String():建立一個空白字元串,不含有任何内容。

public String(char[] array):根據字元串數組的内容,來建立對應的字元串。

public String(byte[] array):根據位元組數組的内容,來建立對應的字元串。

一種直接建立:String str = “Hello”:右邊直接用雙引号

注意:直接寫上雙引号,就是字元串對象

字元串常量池

程式中直接寫上的雙引号字元串,就在字元串常量池中

字元串比較

==

  • 進行對象的位址值比較
  • 不進行字元串的内容比較

equals

  • public boolean equals(Object obj):

    參數可以是任何對象,隻有參數是一個字元串并且内容相同才會給true;否則傳回false

  • 注意事項
    • 1.任何對象都能用Object進行接受
    • 2.equals方法具有對稱性,也就是a.equals(b)和b.equals(a)效果一樣。
    • 3.如果比較雙方一個常量一個變量,推薦把常量字元串寫在前面。

      推薦:“abc”.equals(str)

      不推薦:str.equals(“abc”)

public boolean equalsIgnoreCase(String str)

  • 忽略大小寫,進行内容比較

字元串常用方法

與擷取相關

  • public int length():

    擷取字元串中含有的字元個數,拿到字元串長度。

  • public String concat(String str):

    目前字元串和參數字元串拼接成為傳回值新的字元串。

  • public char charAt(int index):

    擷取指定索引位置的單個字元。(索引從0開始)

  • public int indexOf(String str):

    查找參數字元串在本字元串中首先出現的索引位置,如果沒有傳回-1值

截取

  • public String substring(int index):

    截取從參數位置一直到字元串末尾,傳回新字元串。

  • public String substring(int begin,int end):

    截取從begin開始,一直到end結束,中間的字元串

    [begin,end),包含左邊不包含右邊

轉換

  • public char[] toCharArray():

    将目前字元串拆分為字元數組作為傳回值。

  • public byte[] getBytes():

    獲得目前字元串底層的位元組數組

  • public String replace(CharSequence oldString,CharSequence newString):

    将所有出現的老字元串替換成為新的字元串,傳回替換之後的結果新字元串。

    CharsSequence意思就是說可以接受字元串類型。

分割

  • public String[] split(String regex):

    按照參數的規則,将字元串切分為若幹部分。

  • 注意事項:
    • split方法的參數其實是一個正規表達式,今後學習.
    • 如果按照英文句點”.“進行切分,必須寫”\.“(兩個反斜杠)