字元串
程式中所有的雙引号字元串,都是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方法的參數其實是一個正規表達式,今後學習.
- 如果按照英文句點”.“進行切分,必須寫”\.“(兩個反斜杠)