Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤和異常

Java 多執行緒

Java 同步

Java 網路

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 雜項

Java API 和框架

Java 類參考

Java 有用資源

Java - 字元類



通常,當我們處理字元時,我們使用基本資料型別 char。

示例

char ch = 'a';

// Unicode for uppercase Greek omega character
char uniChar = '\u039A'; 

// an array of chars
char[] charArray ={ 'a', 'b', 'c', 'd', 'e' }; 

Java 中 Character 類的使用

但是,在開發過程中,我們會遇到需要使用物件而不是基本資料型別的情況。為了實現這一點,Java 為基本資料型別 char 提供了包裝類Character

Java Character 類

Character 類提供了一些有用的類(即靜態)方法來操作字元。您可以使用 Character 建構函式建立 Character 物件 -

Character ch = new Character('a');

在某些情況下,Java 編譯器也會為您建立 Character 物件。例如,如果您將一個基本 char 傳遞給一個期望物件的方法,編譯器會自動將 char 轉換為 Character。如果轉換反過來進行,則此功能稱為自動裝箱或拆箱。

Java Character 類的示例

// Here following primitive char 'a'
// is boxed into the Character object ch
Character ch = 'a';

// Here primitive 'x' is boxed for method test,
// return is unboxed to char 'c'
char c = test('x');

轉義序列

以反斜槓 (\) 開頭的字元是轉義序列,對編譯器具有特殊含義。

換行符 (\n) 在本教程中已在 System.out.println() 語句中頻繁使用,以在字串列印後換行。

下表顯示了 Java 轉義序列 -

轉義序列 描述
\t 在此處插入製表符。
\b 在此處插入退格鍵。
\n 在此處插入換行符。
\r 在此處插入回車符。
\f 在此處插入換頁符。
\' 在此處插入單引號字元。
\" 在此處插入雙引號字元。
\\ 在此處插入反斜槓字元。

當在列印語句中遇到轉義序列時,編譯器會相應地解釋它。

示例:轉義序列

如果要將引號放在引號內,則必須在內部引號上使用轉義序列 \" -

public class Test {

   public static void main(String args[]) {
      System.out.println("She said \"Hello!\" to me.");
   }
}

輸出

She said "Hello!" to me.

字元類

宣告

以下是java.lang.Character類的宣告 -

public final class Character
   extends Object
      implements Serializable, Comparable<Character>

欄位

以下是java.lang.Character類的欄位 -

  • static byte COMBINING_SPACING_MARK - 這是 Unicode 規範中的通用類別“Mc”。

  • static byte CONNECTOR_PUNCTUATION - 這是 Unicode 規範中的通用類別“Pc”。

  • static byte CONTROL - 這是 Unicode 規範中的通用類別“Cc”。

  • static byte CURRENCY_SYMBOL - 這是 Unicode 規範中的通用類別“Sc”。

  • static byte DASH_PUNCTUATION - 這是 Unicode 規範中的通用類別“Pd”。

  • static byte DECIMAL_DIGIT_NUMBER - 這是 Unicode 規範中的通用類別“Nd”。

  • static byte DIRECTIONALITY_ARABIC_NUMBER - 這是 Unicode 規範中的弱雙向字元型別“AN”。

  • static byte DIRECTIONALITY_BOUNDARY_NEUTRAL - 這是 Unicode 規範中的弱雙向字元型別“BN”。

  • static byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR - 這是 Unicode 規範中的弱雙向字元型別“CS”。

  • static byte DIRECTIONALITY_EUROPEAN_NUMBER - 這是 Unicode 規範中的弱雙向字元型別“EN”。

  • static byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR − 在 Unicode 規範中,這是弱雙向字元型別“ES”。

  • static byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR − 在 Unicode 規範中,這是弱雙向字元型別“ET”。

  • static byte DIRECTIONALITY_LEFT_TO_RIGHT − 在 Unicode 規範中,這是強雙向字元型別“L”。

  • static byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING − 在 Unicode 規範中,這是強雙向字元型別“LRE”。

  • static byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE − 在 Unicode 規範中,這是強雙向字元型別“LRO”。

  • static byte DIRECTIONALITY_NONSPACING_MARK − 在 Unicode 規範中,這是弱雙向字元型別“NSM”。

  • static byte DIRECTIONALITY_OTHER_NEUTRALS − 在 Unicode 規範中,這是中性雙向字元型別“ON”。

  • static byte DIRECTIONALITY_PARAGRAPH_SEPARATOR − 在 Unicode 規範中,這是中性雙向字元型別“B”。

  • static byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT − 在 Unicode 規範中,這是弱雙向字元型別“PDF”。

  • static byte DIRECTIONALITY_RIGHT_TO_LEFT − 在 Unicode 規範中,這是強雙向字元型別“R”。

  • static byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC − 在 Unicode 規範中,這是強雙向字元型別“AL”。

  • static byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING − 在 Unicode 規範中,這是強雙向字元型別“RLE”。

  • static byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE − 在 Unicode 規範中,這是強雙向字元型別“RLO”。

  • static byte DIRECTIONALITY_SEGMENT_SEPARATOR − 在 Unicode 規範中,這是中性雙向字元型別“S”。

  • static byte DIRECTIONALITY_UNDEFINED − 這是未定義的雙向字元型別。

  • static byte DIRECTIONALITY_WHITESPACE − 在 Unicode 規範中,這是中性雙向字元型別“WS”。

  • static byte ENCLOSING_MARK − 在 Unicode 規範中,這是通用類別“Me”。

  • static byte END_PUNCTUATION − 在 Unicode 規範中,這是通用類別“Pe”。

  • static byte FINAL_QUOTE_PUNCTUATION − 在 Unicode 規範中,這是通用類別“Pf”。

  • static byte FORMAT − 在 Unicode 規範中,這是通用類別“Cf”。

  • static byte INITIAL_QUOTE_PUNCTUATION − 在 Unicode 規範中,這是通用類別“Pi”。

  • static byte LETTER_NUMBER − 在 Unicode 規範中,這是通用類別“Nl”。

  • static byte LINE_SEPARATOR − 在 Unicode 規範中,這是通用類別“Zl”。

  • static byte LOWERCASE_LETTER − 在 Unicode 規範中,這是通用類別“Ll”。

  • static byte MATH_SYMBOL − 在 Unicode 規範中,這是通用類別“Sm”。

  • static int MAX_CODE_POINT − 這是 Unicode 程式碼點的最大值。

  • static char MAX_HIGH_SURROGATE − 在 UTF-16 編碼中,這是 Unicode 高代理對程式碼單元的最大值。

  • static char MAX_LOW_SURROGATE − 在 UTF-16 編碼中,這是 Unicode 低代理對程式碼單元的最大值。

  • static int MAX_RADIX − 這是可用於轉換為和從字串轉換的最大基數。

  • static char MAX_SURROGATE − 在 UTF-16 編碼中,這是 Unicode 代理對程式碼單元的最大值。

  • static char MAX_VALUE − 此欄位的常量值為 char 型別的最大值,'\uFFFF'。

  • static int MIN_CODE_POINT − 這是 Unicode 程式碼點的最小值。

  • static char MIN_HIGH_SURROGATE − 在 UTF-16 編碼中,這是 Unicode 高代理對程式碼單元的最小值。

  • static char MIN_LOW_SURROGATE − 在 UTF-16 編碼中,這是 Unicode 低代理對程式碼單元的最小值。

  • static int MIN_RADIX − 這是可用於轉換為和從字串轉換的最小基數。

  • static int MIN_SUPPLEMENTARY_CODE_POINT − 這是補充程式碼點的最小值。

  • static char MIN_SURROGATE − 在 UTF-16 編碼中,這是 Unicode 代理對程式碼單元的最小值。

  • static char MIN_VALUE − 此欄位的常量值為 char 型別的最小值,'\u0000'。

  • static byte MODIFIER_LETTER − 在 Unicode 規範中,這是通用類別“Lm”。

  • static byte MODIFIER_SYMBOL − 在 Unicode 規範中,這是通用類別“Sk”。

  • static byte NON_SPACING_MARK − 在 Unicode 規範中,這是通用類別“Mn”。

  • static byte OTHER_LETTER − 在 Unicode 規範中,這是通用類別“Lo”。

  • static byte OTHER_NUMBER − 在 Unicode 規範中,這是通用類別“No”。

  • static byte OTHER_PUNCTUATION − 在 Unicode 規範中,這是通用類別“Po”。

  • static byte OTHER_SYMBOL − 在 Unicode 規範中,這是通用類別“So”。

  • static byte PARAGRAPH_SEPARATOR − 在 Unicode 規範中,這是通用類別“Zp”。

  • static byte PRIVATE_USE − 在 Unicode 規範中,這是通用類別“Co”。

  • static int SIZE − 這是以無符號二進位制形式表示 char 值所使用的位數。

  • static byte SPACE_SEPARATOR − 在 Unicode 規範中,這是通用類別“Zs”。

  • static byte START_PUNCTUATION − 在 Unicode 規範中,這是通用類別“Ps”。

  • static byte SURROGATE − 在 Unicode 規範中,這是通用類別“Cs”。

  • static byte TITLECASE_LETTER − 在 Unicode 規範中,這是通用類別“Lt”。

  • static Class<Character> TYPE − 這是表示基本型別 char 的 Class 例項。

  • static byte UNASSIGNED − 在 Unicode 規範中,這是通用類別“Cn”。

  • static byte UPPERCASE_LETTER − 在 Unicode 規範中,這是通用類別“Lu”。

類建構函式

序號 建構函式及描述
1

Character(char value)

這將構造一個新分配的 Character 物件,該物件表示指定的 char 值。

類方法

序號 方法及描述
1 static int charCount(int codePoint)

此方法確定表示指定字元(Unicode 程式碼點)所需的 char 值數量。

2 char charValue()

此方法返回此 Character 物件的值。

3 static int codePointAt(char[] a, int index)

此方法返回 char 陣列給定索引處的程式碼點。

4 static int codePointBefore(char[] a, int index)

此方法返回 char 陣列給定索引之前的程式碼點。

5 static int codePointCount(char[] a, int offset, int count)

此方法返回 char 陣列引數子陣列中的 Unicode 程式碼點數

6 int compareTo(Character anotherCharacter)

此方法以數字方式比較兩個 Character 物件。

7 static int digit(char ch, int radix)

此方法返回字元 ch 在指定基數中的數值。

8 boolean equals(Object obj)

此方法將此物件與指定物件進行比較

9 static char forDigit(int digit, int radix)

此方法確定指定基數中特定數字的字元表示形式。

10 static byte getDirectionality(char ch)

此方法返回給定字元的 Unicode 雙向屬性。

11 static int getNumericValue(char ch)

此方法返回指定 Unicode 字元表示的 int 值。

12 static int getType(char ch)

此方法返回一個值,指示字元的通用類別。

13 int hashCode()

此方法返回此 Character 的雜湊碼。

14 static boolean isDefined(char ch)

此方法確定字元是否在 Unicode 中定義。

15 static boolean isDigit(char ch)

此方法確定指定的字元是否為數字。

16 static boolean isHighSurrogate(char ch)

此方法確定給定的 char 值是否為高代理對程式碼單元(也稱為前導代理對程式碼單元)。

17 static boolean isIdentifierIgnorable(char ch)

此方法確定在 Java 識別符號或 Unicode 識別符號中是否應將指定的字元視為可忽略的字元。

18 static boolean isISOControl(char ch)

此方法確定指定的字元是否為 ISO 控制字元。

19 static boolean isJavaIdentifierPart(char ch)

此方法確定指定的字元是否可以作為 Java 識別符號的一部分,而不是第一個字元。

20 static boolean isJavaIdentifierStart(char ch)

此方法確定指定的字元是否允許作為 Java 識別符號的第一個字元。

21 static boolean isLetter(char ch)

此方法確定指定的字元是否為字母。

22 static boolean isLetterOrDigit(char ch)

此方法確定指定的字元是否為字母或數字。

23 static boolean isLowerCase(char ch)

此方法確定指定的字元是否為小寫字元。

24 static boolean isLowSurrogate(char ch)

此方法確定給定的 char 值是否為低代理對程式碼單元(也稱為尾隨代理對程式碼單元)。

25 static boolean isMirrored(char ch)

此方法確定字元是否根據 Unicode 規範映象。

26 static boolean isSpaceChar(char ch)

此方法確定指定的字元是否為 Unicode 空格字元。

27 static boolean isSupplementaryCodePoint(int codePoint)

此方法確定指定的字元(Unicode 程式碼點)是否在補充字元範圍內。

28 static boolean isSurrogatePair(char high, char low)

此方法確定指定的 char 值對是否為有效的代理對。

29 static boolean isTitleCase(char ch)

此方法確定指定的字元是否為標題大小寫字元。

30 static boolean isUnicodeIdentifierPart(char ch)

此方法確定指定的字元是否可以作為 Unicode 識別符號的一部分,而不是第一個字元。

31 static boolean isUnicodeIdentifierStart(char ch)

此方法確定指定的字元是否允許作為 Unicode 識別符號的第一個字元。

32 static boolean isUpperCase(char ch

此方法確定指定的字元是否為大寫字元。

33 static boolean isValidCodePoint(int codePoint)

此方法確定指定的程式碼點是否為 0x0000 到 0x10FFFF(含)範圍內的有效 Unicode 程式碼點值。

34 static boolean isWhitespace(char ch)

此方法確定指定的字元是否根據 Java 屬於空白字元。

35 static int offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset)

此方法返回給定 char 子陣列中相對於給定索引偏移 codePointOffset 個程式碼點的索引

36 static char reverseBytes(char ch)

此方法返回透過反轉指定 char 值中位元組的順序獲得的值。

37 static char[] toChars(int codePoint)

此方法將指定的字元(Unicode 程式碼點)轉換為儲存在 char 陣列中的 UTF-16 表示形式。

38 static int toCodePoint(char high, char low)

此方法將指定的代理對轉換為其補充程式碼點值。

39 static char toLowerCase(char ch)

此方法使用 UnicodeData 檔案中的大小寫對映資訊將字元引數轉換為小寫。

40 String toString()

此方法返回一個表示此 Character 值的 String 物件。

41 static char toTitleCase(char ch)

此方法使用 UnicodeData 檔案中的大小寫對映資訊將字元引數轉換為標題大小寫。

42 static char toUpperCase(char ch)

此方法使用 UnicodeData 檔案中的大小寫對映資訊將字元引數轉換為大寫。

43 static Character valueOf(char c)

此方法返回一個表示指定 char 值的 Character 例項。

繼承的方法

此類繼承自以下類 -

  • java.lang.Object

示例

以下示例演示了 Java Character charCount() 方法的使用。在此程式中,我們建立了一個 int 變數併為其分配了一個十六進位制值,該值等效於一個 char 值。然後使用 charCount() 方法,我們檢查它是否是一個有效的補充字元。然後列印結果。

package com.tutorialspoint;

public class CharacterDemo {
   public static void main(String[] args) {

      // create and assign values to int codepoint cp
      int cp = 0x12345;

      // create an int res
      int res;

      // assign the result of charCount on cp to res
      res = Character.charCount(cp);
      String str1 = "It is not a valid supplementary character";
      String str2 = "It is a valid supplementary character";

      // print res value
      if ( res == 1 ) {
         System.out.println( str1 );
      } else if ( res == 2 ) {
         System.out.println( str2 );
      }
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果 -

It is a valid supplementary character
廣告