Java 教程

Java 控制語句

面向物件程式設計

Java 內建類

Java 檔案處理

Java 錯誤與異常

Java 多執行緒

Java 同步

Java 網路程式設計

Java 集合

Java 介面

Java 資料結構

Java 集合演算法

高階 Java

Java 其他

Java API 與框架

Java 類參考

Java 有用資源

Java - Unicode 系統



Unicode 是一種國際字元集,包含來自全球眾多語言的大量字元、符號和文字。

Java 中的 Unicode 系統

Java 程式語言具有平臺無關性,內建支援 Unicode 字元,允許開發人員建立能夠與多種語言和文字無縫工作的應用程式。

在 Unicode 之前,存在多種表示字元編碼的標準:

  • ASCII - 用於美國。

  • ISO 8859-1 - 用於西歐語言。

  • KOI-8 - 用於俄語。

  • GB18030 和 BIG-5 - 用於中文。

因此,為了支援多語言應用程式程式碼,某些字元使用單個位元組,某些字元使用兩個位元組。甚至相同的程式碼可能在一種語言中表示一個不同的字元,而在另一種語言中可能表示其他字元。

為了克服上述缺點,開發了 Unicode 系統,其中每個字元由 2 個位元組表示。由於 Java 是為多語言開發的,因此它採用了 Unicode 系統。最低值由\u0000表示,最高值由\uFFFF表示。

方法:使用 Unicode 字元和值

在 Java 中使用 Unicode 字元有兩種方法:使用 Unicode 轉義序列和直接儲存 Unicode 字元。

第一種方法涉及使用轉義序列表示 Unicode 字元,當無法直接在 Java 程式碼中鍵入或顯示字元時,這很有用。第二種方法涉及直接將 Unicode 字元儲存在變數中,當可以直接鍵入或顯示字元時,這更方便。

方法的選擇取決於程式的具體要求。但是,一般來說,當可以鍵入或顯示字元時,方法 2 更簡單、更方便;而當無法鍵入或顯示字元時,方法 1 是必要的。

1. 使用 Unicode 轉義序列

在 Java 中儲存 Unicode 字元的一種方法是使用 Unicode 轉義序列。轉義序列是一系列表示特殊字元的字元。在 Java 中,Unicode 轉義序列以字元'\u'開頭,後跟四個十六進位制數字,這些數字表示所需字元的 Unicode 程式碼點。

示例:Unicode 轉義序列的使用

package com.tutorialspoint;

public class UnicodeCharacterDemo {
   public static void main (String[]args) {   		 
      //Unicode escape sequence
      char unicodeChar = '\u0041';
      // point for 'A'
      System.out.println("Stored Unicode Character: " + unicodeChar);
   }
}

編譯並執行上面的程式。這將產生以下結果:

輸出

Stored Unicode Character: A

在上面的程式碼片段中,Unicode 轉義序列 '\u0041' 表示字元 'A'。該轉義序列被賦值給 char 變數 unicodeChar,然後將儲存的字元列印到控制檯。

2. 直接儲存 Unicode 值

或者,您可以透過將字元括在單引號中來直接將 Unicode 字元儲存在 char 變數中。但是,對於無法使用鍵盤直接鍵入或不可見的字元(例如控制字元),這種方法可能不可行。

示例 1:將 Unicode 字元賦給變數

package com.tutorialspoint;

public class UnicodeCharacterDemo {
   public static void main(String[] args) {
      // Storing Unicode character directly
      char unicodeChar = 'A';
      // Directly storing the character 'A'
      System.out.println("Stored Unicode Character: " + unicodeChar);
   }
}

編譯並執行上面的程式。這將產生以下結果:

輸出

Stored Unicode Character: A

在這個例子中,字元 'A' 直接用單引號括起來並賦給 char 變數 unicodeChar。然後將儲存的字元列印到控制檯。

示例 2:將 Unicode 值賦給變數

package com.tutorialspoint;

public class UnicodeCharacterDemo {
   public static void main(String[] args) {
      // Storing Unicode characters using escape sequences
      char letterA = '\u0041';
      char letterSigma = '\u03A3';
      char copyrightSymbol = '\u00A9';
      // Storing Unicode characters directly
      char letterZ = 'Z';
      char letterOmega = 'Ω';
      char registeredSymbol = '®';
      // Printing the stored Unicode characters
      System.out.println("Stored Unicode Characters using Escape Sequences:");
      System.out.println("Letter A: " + letterA);
      System.out.println("Greek Capital Letter Sigma: " + letterSigma);
      System.out.println("Copyright Symbol: " + copyrightSymbol);
      System.out.println("\nStored Unicode Characters Directly:");
      System.out.println("Letter Z: " + letterZ);
      System.out.println("Greek Capital Letter Omega: " + letterOmega);
      System.out.println("Registered Symbol: " + registeredSymbol);
   }
}

編譯並執行上面的程式。這將產生以下結果:

輸出

Stored Unicode Characters using Escape Sequences:
Letter A: A
Greek Capital Letter Sigma: Σ
Copyright Symbol: ©

Stored Unicode Characters Directly:
Letter Z: Z
Greek Capital Letter Omega: Ω
Registered Symbol: ®

示例 3:將 Unicode 字元和值賦給變數

此示例演示如何操作儲存的 Unicode 字元。它計算大寫字母 'A' 和小寫字母 'a' 之間的差值,並使用該差值計算大寫字母 'C'。然後,透過在大寫字母 'C' 的 Unicode 程式碼點上加 32 來計算小寫字母 'c'。操作後的 Unicode 字元將列印到控制檯。

package com.tutorialspoint;

public class UnicodeCharacterDemo {
   public static void main(String[] args) {
      // Storing Unicode characters using escape sequences
      char letterA = '\u0041';
      char letterSmallA = '\u0061';
      // Storing Unicode characters directly
      char letterB = 'B';

      // Manipulating the stored Unicode characters
      int difference = letterA - letterSmallA;
      char letterC = (char) (letterB + difference);
      char letterSmallC = (char) (letterC + 32);
      // Printing the manipulated Unicode characters
      System.out.println("Manipulated Unicode Characters:");
      System.out.println("Difference between A and a: " + difference);
      System.out.println("Calculated Letter C: " + letterC);
      System.out.println("Calculated Letter c: " + letterSmallC);
   }
}

編譯並執行上面的程式。這將產生以下結果:

輸出

Manipulated Unicode Characters:
Difference between A and a: -32
Calculated Letter C: "
Calculated Letter c: B

結論

在 Java 中,您可以使用字元字面量來儲存 Unicode 字元,方法是使用 Unicode 轉義序列或直接將字元用單引號括起來。這兩種方法各有優缺點。轉義序列提供了一種一致的方式來表示原始碼中的任何 Unicode 字元,而直接儲存字元在處理易於鍵入或顯示的字元時更方便。

本文提供了一種在 Java 中儲存 Unicode 字元的演算法,討論了兩種不同的儲存這些字元的方法,並演示了每種方法的工作示例。瞭解這些技術將幫助開發人員建立能夠與各種語言和指令碼無縫工作的應用程式,從而充分利用 Java 程式設計中 Unicode 的強大功能。

廣告