Java 的 char 基本型別是單一 Unicode 字元的 16 位元表示法。
char 型別是以最初的 Unicode 規格為基礎,該規格使用 16 位元來表示字元。
這足以涵蓋大多數常見的字母,並涵蓋 0x0000 到 0xFFFF 範圍內的字元。
該規格後來已將可能的字元範圍擴展到 0x01FFFF。
多個 char 可以組成一個字串,例如 "word",而 char 也可以個別處理。
char 字面值以單引號包住(例如 'A')。
char lowerA = 'a';
char upperB = 'B';
String 的 char
String.toCharArray 方法會以陣列的形式回傳 String 的字元。
如陣列所述,你可以使用 for 迴圈來疊代該陣列。
String text = "Hello";
char[] asArray = text.toCharArray();
for (char ch: asArray) {
System.out.println(ch);
}
// Outputs:
// H
// e
// l
// l
// o
有許多內建的方法可以檢查及操作 char。
這些方法可以在 java.lang.Character 類別中找到,形式為靜態方法。
以下是一些範例:
Character.isWhitespace(' '); // true
Character.isWhitespace('#'); // false
Character.isLetter('a'); // true
Character.isLetter('3'); // false
Character.isDigit('6'); // true
Character.isDigit('?'); // false
char 加入 String
+ 運算子可以用來把 char 加入 String。
'a' + " banana" // => "a banana"
"banana " + 'a' // => "banana a"
小心 不要 用 + 把兩個 char 連接成一個 String!
這樣相加兩個 char 會得到 int,不是 String!
例如:
'b' + 'c';
// => 197 (not the String "bc")
這是因為 Java 會將 char 提升為 int(參見 Java 語言規格的4.2 基本型別與值)。
不過,當要加入的字元很多時,改用 StringBuilder 可能更有效率:
StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');
String builtString = builder.toString();
// => abc