“嗨,阿米戈!”
“但是,Bilaabo,你已經打過招呼了。”
“真的嗎?好吧,我還是喜歡每節課都用這句話開始。”
“今天我們要深入研究String類。”
“但是,我已經知道了一切。我什至知道 String 類是不可變的。”
“String類有46個方法,你知道幾個?”
“不超過十個。其實最多也就五個吧。”
“那就听好了。”
“Java 的創造者註意到程序中的大多數字符串都不是為了修改,但有時它們還是會被修改。當你創建一個字符串,在其中保存一些重要的東西,將它傳遞給其他人的方法時,它會被改變是非常煩人的. 為了防止這種情況發生,他們決定同時創建可變和不可變字符串。”
“String 類用於不可變字符串,StringBuilder類用於可變字符串。這些類的對像很容易轉換為其他類型。在大多數情況下,Java 開發人員只需要 String,這證明 Java 的創建者是正確的。”
“所以如果我需要一個字符串,我會使用 String 類。如果我需要一個可變字符串,那麼我會使用 StringBuilder類?”
“是的,其實還有一個類叫StringBuffer,它是StringBuilder的一個副本,只不過它的所有方法都聲明為synchronized,這樣就可以在程序的不同線程中訪問這個對象。”
“那麼這個例子呢?這裡的字符串不會改變嗎?”
String s = "cat";
s = s + "-" + s;
“不。這裡有兩個字符串對象:«cat» 和 «cat-cat»。第二個是使用第一個創建的,但第一個對像沒有改變。實際上,這裡的事情要有趣得多。這是代碼編譯器在編譯您的示例時生成:”
String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();
“所以,StringBuilder 幾乎總是用於創建新的字符串,但有時編譯器會簡單地為您完成所有工作。但是您的版本更簡單,您不覺得嗎?”
“是啊,Java 擁有如此先進的編譯器真是太棒了。”
“好吧,現在讓我們來看看 String 類的方法:”
1) 如何找到字符串的長度?
“長度方法返回字符串的長度(其中的字符數)。”
方法) | 例子) |
---|---|
|
|
|
2) 如何從字符串中獲取字符?
“ charAt方法通過其索引從 String 返回一個字符。字符索引從 0 開始。
方法) | 例子) |
---|---|
|
|
|
3) 如何從字符串中獲取字符?
如何從字符串中獲取字符?
方法) | 例子) |
---|---|
|
|
4) 如何比較字符串?
“equals 方法檢查字符串是否匹配,equalsIgnoreCase方法檢查忽略大小寫時字符串是否匹配。
方法) | 方法) |
---|---|
|
|
|
|
5) 如何讓字符串中的所有字母大寫或小寫?
“ toUpperCase方法返回一個全部為大寫字母的 String 副本。”
“ toLowerCase方法返回所有小寫字母的 String 副本。”
方法) | 例子) |
---|---|
|
|
結果:
|
|
|
|
結果:
|
6) 如何刪除字符串開頭和結尾的空格?
“trim 方法返回一個字符串的副本,其開頭和結尾都沒有空白字符。”
方法) | 例子) |
---|---|
|
|
結果:
|
GO TO FULL VERSION