字元串 在底層上跟C 類似,每個字元串的實例都不可修改。當修改字元串變數時,是將變數指向新的字元串實例,而不是修改原本的實例。Java中也有字元串池機制。 註意:使用 運算符比較字元串時,跟C 有根本上的差別。在Java中這裡的 操作符相當於C 中的 方法。 Java中比較字元串要使用 方法,忽略大 ...
字元串
在底層上跟C#類似,每個字元串的實例都不可修改。當修改字元串變數時,是將變數指向新的字元串實例,而不是修改原本的實例。Java中也有字元串池機制。
註意:使用 ==
運算符比較字元串時,跟C#有根本上的差別。在Java中這裡的 ==
操作符相當於C#中的 Object.ReferenceEquals(strA, strB)
方法。
Java中比較字元串要使用 equals
方法,忽略大小寫比較時使用 equalsIgnoreCase
方法。
碼點和代碼單元
Java字元串由char值序列組成。char數據類型是一個採用UTF-16編碼表示Unicode碼點的代碼單元。大多數常用Unicode字元使用一個代碼單元就可以表示,而輔助字元需要一對代碼單元表示。length
方法將返回采用UTF-16編碼表示的給定字元串所需要的代碼單元數量。
String str = "Hello, \uD842\uDFB7!";
System.out.println(str); // Hello,