字元

字元 在 Java

16 個練習

關於 字元

Java 的 char 基本型別是單一 Unicode 字元的 16 位元表示法。

Note

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

Character 類別

有許多內建的方法可以檢查及操作 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
Note

Character 類別中有一些方法具有多載,因此可以接受 char 或 int。 例如,isDigit 有一個接受 char 的多載,另一個則接受 int。 如前所述,char 型別只能表示 0x0000 到 0xFFFF 範圍內的字元。 然而 int 可以表示所有字元,因此才有多載的 int 版本。

將 char 加入 String

+ 運算子可以用來把 char 加入 String。

'a' + " banana"     // => "a banana"
"banana " + 'a'     // => "banana a"
Caution

小心 不要 用 + 把兩個 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
透過 GitHub 編輯 連結會在新視窗或分頁中開啟

學習 字元