Java字符串

1. 什麼是字符串

從概念上講, Java 字符串就是 Unicode 字符序列。 例如, 串“ Java\u2122” 由 5 個 Unicode 字符 J、a、v、a 和TM。Java 沒有內置的字符串類型, 而是在標準 Java 類庫中提供了 一個預定義類, 很自然地叫做 String。 每個用雙引號括起來的字符串都是 String 類的一個實例

2. 子串

String 類的 substring 方法可以從一個較大的字符串提取出一個子串。 例如:

String greeting = "Hello";
String s = greeting.substring(0, 3);
//在substring中從0開始計數,直到3爲止,但不包含3。創建了一個由字符“ Hel” 組成的字符串。

3. 拼接

使用 + 號連接(拼接)兩個字符串。當將一個字符串與一個非字符串的值進行拼接時, 後者被轉換成字符串

4. 不可變字符串

不能修改 Java 字符串中的字符,Java 文檔中將 String 類對象稱爲不可變字符串,當然,可以修改字符串變量 greeting, 讓它引用另外一個字符串。(可以先提取,再拼接的方式,用一個新的字符串取接收)。

不可變字符串卻有一個優點: 編譯器可以讓字符串共享。如果複製一個字符串變量, 原始字符串與複製的字符串共享相同 的字符。

5. 檢查字符串是否相等

可以使用 equals 方法檢測兩個字符串是否相等。對於表達式:
s.equals(t)

要想檢測兩個字符串是否相等,而不區分大小寫,可以使用 equalsIgnoreCase方法。

“Hello”.equalsIgnoreCase(“hel1o”)

6. java中==和equals的區別

  1. = =運算符檢測兩個字符串是否相等!這個運算符只能夠確定兩個字串 是否放置在同一個位置上。當然, 如果字符串放置在同一個位置上, 它們必然相等。但是, 完全有可能將內容相同的多個字符串的拷貝放置在不同的位置上。如果虛擬機始終將相同的字符串共享, 就可以使用= =運算符檢測是否相等。但實際上只有字符串常量是共享的
  2. 而 + 或 substring 等操作產生的結果並不是共享的。 因此, 千萬不 要使用 == 運算符測試字符串的相等性。

總結說就是:
3. = =號在比較基本數據類型時比較的是值,比較兩個對象時比較的是兩個對象的地址值。
4. equals()方法存在於Object類中,所有的類中的equals()方法都繼承自Object類。而Object類中equals()方法底層又依賴的是= =號。在所有沒有重寫equals()方法的類中,調用equals()方法其實和使用==號的效果一樣,也是比較的地址值。然而,Java提供的所有類中,絕大多數類都重寫了equals()方法,重寫後的equals()方法一般都是比較兩個對象的值:

C 程序員從不使用 = 對字符串進行比較, 而使用 strcmp 函數。 Java 的 compareTo
方法與 strcmp 完全類似, 因此, 可以這樣使用:
if (greeting.compareTo("Helllo) === 0}
不過, 使用 equals 看起來更爲清晰。

7. 判斷空字符串

空字符串 “” 是長度爲 0 的字符串。
str.length()= 0 和 str.equals("") 來進行判斷。

String 變量還可以存 放一個特殊的值,名爲null。
要檢查一個字符串是否爲null, 要使用以下條件(首先要檢查 str 不爲 null ):
if (str == null)

判斷字符串既不是空又不爲null的時候可以用
if (str != null && str.length() != 0)來進行判斷

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章