一、定義和概念
String
是Java中非常重要的數據類型之一,表示一個字元序列,也就是一組字元。它是Java中預定義的類,所以我們可以直接使用它,無需導入額外的包。字元串常量被認為是Java中最基本的對象之一,創建string對象有兩種方式:直接將字元串包含在雙引號內,或者通過new操作符創建。
例如:
String str1 = "Hello World"; // 直接創建 String str2 = new String(); // 通過new操作符創建一個空字元串 String str3 = new String("Java Programming"); // 通過new操作符創建一個已知值的字元串
String
的長度即為其中包含字元的數量,可以通過調用length()
方法獲取長度:
String str = "Hello World"; int length = str.length(); // length的值為11
二、字元串不可變
Java的字元串是不可變的,也就是說,一旦一個字元串被創建,它的值就無法被改變。如果我們試圖改變字元串的值,實際上是創建了一個新的字元串對象,而原有的字元串對象並沒有被改變。這個特點和C++中的const char*
十分相似。字元串不可變是Java安全性和性能的重要保證。
例如:
String str1 = "Hello"; str1 += " World"; // 將字元串連接到現有字元串上 System.out.println(str1); // 輸出"Hello World" String str2 = "Goodbye"; str2.toUpperCase(); // 返回全大寫的字元串 System.out.println(str2); // 輸出"Goodbye"
我們可以看到,雖然我們試圖改變字元串的值,但實際上並沒有成功。
三、字元串拼接
字元串拼接是在開發中經常要用到的操作之一。對於字元串拼接,我們有多種方式來實現。
方式一:使用「+」運算符
String str1 = "Hello"; String str2 = ", "; String str3 = "World"; String result = str1 + str2 + str3; // 將多個字元串連接起來 System.out.println(result); // 輸出"Hello, World"
方式二:使用concat()
方法
String str1 = "Hello"; String str2 = ", "; String str3 = "World"; String result = str1.concat(str2).concat(str3); // 使用concat方法將多個字元串連接起來 System.out.println(result); // 輸出"Hello, World"
雖然兩種方式的結果是相同的,但是使用concat()
方法可以減少一些不必要的新建字元串的開銷,所以一般推薦使用concat()
方法。
四、字元串比較
Java中字元串的比較是常見的操作之一,我們可以使用==
和equals()
方法來比較兩個字元串。雖然兩者都可以用於比較字元串,但它們的語義是不相同的。
- 使用
==
比較兩個字元串時,會判斷它們是否指向同一個對象。也就是說,它們的引用地址是否相同。 - 使用
equals()
方法比較兩個字元串時,會比較它們的值是否相等。
例如:
String str1 = "Hello"; String str2 = "Hello"; String str3 = new String("Hello"); System.out.println(str1 == str2); // 返回true,因為它們指向同一個字元串的引用地址,採用常量池技術 System.out.println(str1 == str3); // 返回false,因為str1和str3指向不同的對象,雖然內容相同 System.out.println(str1.equals(str3)); // 返回true,因為它們的值相同
五、字元串轉化
字元串轉化是Java開發中非常常見的操作,其中最常見的就是將字元串轉化為基本類型值和其他對象類型。
5.1 字元串轉化為基本類型值
Java針對每種基本類型都提供了一系列的包裝類,這些包裝類提供了將字元串轉化為對應類型的靜態方法。例如:
String str = "123"; int num = Integer.parseInt(str); // 將字元串轉為int類型 double d = Double.parseDouble(str); // 將字元串轉為double類型
如果需要轉化為其他類型的基本數據類型,也可以使用相應的包裝類提供的靜態方法。
5.2 字元串轉化為其他對象類型
Java提供了許多方法來將字元串轉化為其他對象類型,最常見的就是將字元串轉化為Date
類型和BigDecimal
類型。這些方法都存放在對應的類中。例如:
String str = "2022-01-01"; DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // SimpleDateFormat可以用於設置日期格式 Date date = sdf.parse(str); // 將字元串轉為Date類型 System.out.println(date); // 輸出"Sat Jan 01 00:00:00 CST 2022"
我們還可以使用BigDecimal
類型的valueOf()
方法將字元串轉化為BigDecimal類型。例如:
String str = "12345.6789"; BigDecimal bd = BigDecimal.valueOf(Double.parseDouble(str)); System.out.println(bd); // 輸出"12345.6789"
六、字元串作為參數傳遞
Java中傳遞參數時,如果傳遞的是基本類型,那麼基本類型的值會被複制到方法中,方法中對該值的修改不會影響原來的值。但是,如果傳遞的是字元串類型,因為字元串不可變,所以對字元串進行修改時,實際上是創建了一個新的字元串對象。例如:
public class Test { public static void main(String[] args) { String str = "Hello"; changeString(str); System.out.println(str); // 輸出"Hello" } public static void changeString(String s) { s = s + ", World"; } }
由於字元串不可變,所以方法中對字元串的改變不會影響原來的值。
七、總結
本文介紹了Java中的String
類型,包括定義和概念、字元串不可變、字元串拼接、字元串比較、字元串轉化和字元串作為參數傳遞。同時,本文還介紹了Java中的一些基本類型和對象類型,以及它們之間的轉化。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241603.html