Java String類,字串常量池,建立方法,字串的獲取,擷取,轉換,分割。

Gaoju12138發表於2020-10-24

1、String類

java.lang.String類代表字串。
API當中說,Java程式中的所有字串字面值(如"abc")都作為此類的例項實現。
其實就是說,程式當中所有的雙引號字串,都是String類的物件。(就算沒有new,也一樣是的)。
字串的特點:
1、字串的內容永不可變【重點】
2、正是因為字串用不可改變,所以字串是可以共享使用的。
3、字串效果是相當於是char[ ]字元陣列,但是底層原理是byte[ ]位元組陣列。
建立字串的常見3 + 1種方式:
三種構造方法:
public String() :建立一個空白字串,不含有任何內容。
public String(char[ ] array) :根據字元數字的內容,來建立對應的字串。
public String(byte[ ] array) :根據位元組陣列的內容,來建立對應的字串。
一種直接建立:
String str = “XXXX”;
注意:直接寫上雙引號,就是字串物件。

2、字串常量池

字串常量池:程式當中直接寫上的雙引號字串,就在字串常量池中。
對於基本型別來說, == 是進行數值的比較。
對於引用型別來說, == 是進行【地址值】的比較。

public static void main(String[] args) {
    String str1 = "abc";
    String str2 = "abc";
    char[] charArray = {'a', 'b', 'c'};
    String str3 = new String(charArray);
    byte[] byteArray = {97,98,99};
    String str4 = new String(byteArray);
    System.out.println(str1 == str2); //true
    System.out.println(str1 == str3); //false
    System.out.println(str2 == str3); //false
    System.out.println(str4 == str1); //false
    System.out.println(str4 == str2); //false
    System.out.println(str4 == str3); //false
}

3、字串的相關比較方法

== 是進行字串的地址值比較,如果確實需要字串的內容比較,可以使用兩個方法。
1、public boolean equals(Object obj); 引數可以是任何物件,只有引數是一個字串並且內容相同的才會給true,否則返回值是false
注意事項:
1、任何物件都能用Object進行接收。
2、equals方法具有對稱性,a.equals(b)和b.equals(a)一樣
3、如果比較雙方一個常量一個變數,推薦把常量字串寫在前面。
推薦:“abc”.equals(str); 不推薦:str.equals(“abc”);

2、public boolean equalsIgnoreCase(String str): 忽略大小寫進行內容比較。
注意:只有英文字母區分大小寫。

4、字串的獲取相關方法

public int length():獲取字串的字元個數,拿到字串長度。
public String concat(String str):將當前字串和引數字串拼接成為返回值新的字串
public char chatAt(int index):獲取指定索引位置的單個字元。
public int indexOf(String str):查詢引數字串在本字串當中首次出現的索引位置。

5、字串的擷取方法

public String subString(int index): 擷取從引數位置一直到字串末尾,返回新字串
public String subString(int begin, int end):擷取從begin開始,一直到end結束,中間的字串。
備註:[begin, end) 包含左邊,不包含右邊。

6、字串的轉換

1、public char[ ] toCharArray():將當前字串拆分成為字元陣列作為返回值。
2、public byte[ ] getBytes():獲得當前字串底層的位元組陣列。
3、public String replace(CharSequence oldString,CharSequence newString):將所有出現的老字串替換成為新的字串,返回替換之後的結果新字串。
備註:CharSequence意思就是可以接受字串型別。

7、字串的分隔方法

分隔字串的方法:
public String[ ] split(String regex):按照引數的規則,將字串切分為若干部分。
注意事項:split方法的引數其實是一個正規表示式,如果按照英文句點,必須寫**"\."**.

相關文章