“嗨,阿米戈!”

“但是,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) 如何找到字符串的長度?

長度方法返回字符串的長度(其中的字符數)。”

方法) 例子)
int length();
String s = "Good news, everyone!";
int n = s.length();
int n = "Good news, everyone!".length();

2) 如何從字符串中獲取字符?

charAt方法通過其索引從 String 返回一個字符。字符索引從 0 開始。

方法) 例子)
char charAt(int index)
String s = "Good news, everyone!";
char n = s.charAt(5);
char n = "Good news, everyone!".charAt(5);

3) 如何從字符串中獲取字符?

如何從字符串中獲取字符?

方法) 例子)
char[]toCharArray ()
String s = "Good news, everyone!";
for(char c: s.toCharArray())
{
System.out.println(c);
}

4) 如何比較字符串?

“equals 方法檢查字符串是否匹配,equalsIgnoreCase方法檢查忽略大小寫時字符串是否匹配。

方法) 方法)
boolean equals(Object o)
String s = "cat";
boolean test1 = s.equals("cat");//true
boolean test2 = s.equals("Cat");//false
boolean test3 = s.equals("c"+"a"+"t");//true
boolean equalsIgnoreCase(String str)
String s = "cat";
boolean test1 = s.equalsIgnoreCase("cat");//true
boolean test2 = s.equalsIgnoreCase("Cat");//true
boolean test3 = s.equalsIgnoreCase("cAT");//true

5) 如何讓字符串中的所有字母大寫或小寫?

toUpperCase方法返回一個全部為大寫字母的 String 副本。”

toLowerCase方法返回所有小寫字母的 String 副本。”

方法) 例子)
String toUpperCase()
String s = " Good news, everyone!  ";
s = s.toUpperCase();

結果:

s == "GOOD NEWS, EVERYONE!";
String toLowerCase()
String s = "Good news, everyone!";
s = s.toLowerCase();

結果:

s == "good news, everyone!";

6) 如何刪除字符串開頭和結尾的空格?

“trim 方法返回一個字符串的副本,其開頭和結尾都沒有空白字符。”

方法) 例子)
String trim()
String s = "   Good news, everyone!   ";
s = s.trim();

結果:

s == "Good news, everyone!";