
Java 教程
- Java - 首頁
- Java - 概述
- Java - 歷史
- Java - 特性
- Java 與 C++
- JVM - Java 虛擬機器
- Java - JDK vs JRE vs JVM
- Java - Hello World 程式
- Java - 環境搭建
- Java - 基本語法
- Java - 變數型別
- Java - 資料型別
- Java - 型別轉換
- Java - Unicode 系統
- Java - 基本運算子
- Java - 註釋
- Java - 使用者輸入
- Java - 日期與時間
Java 控制語句
- Java - 迴圈控制
- Java - 決策制定
- Java - if-else
- Java - switch
- Java - for 迴圈
- Java - for-each 迴圈
- Java - while 迴圈
- Java - do-while 迴圈
- Java - break
- Java - continue
面向物件程式設計
- Java - OOPs 概念
- Java - 物件與類
- Java - 類屬性
- Java - 類方法
- Java - 方法
- Java - 變數作用域
- Java - 建構函式
- Java - 訪問修飾符
- Java - 繼承
- Java - 聚合
- Java - 多型
- Java - 重寫
- Java - 方法過載
- Java - 動態繫結
- Java - 靜態繫結
- Java - 例項初始化塊
- Java - 抽象
- Java - 封裝
- Java - 介面
- Java - 包
- Java - 內部類
- Java - 靜態類
- Java - 匿名類
- Java - 單例類
- Java - 包裝類
- Java - 列舉
- Java - 列舉建構函式
- Java - 列舉字串
Java 內建類
Java 檔案處理
Java 錯誤與異常
- Java - 異常
- Java - try-catch 塊
- Java - try-with-resources
- Java - 多重 catch 塊
- Java - 巢狀 try 塊
- Java - finally 塊
- Java - throw 異常
- Java - 異常傳播
- Java - 內建異常
- Java - 自定義異常
Java 多執行緒
- Java - 多執行緒
- Java - 執行緒生命週期
- Java - 建立執行緒
- Java - 啟動執行緒
- Java - 執行緒合併
- Java - 執行緒命名
- Java - 執行緒排程器
- Java - 執行緒池
- Java - 主執行緒
- Java - 執行緒優先順序
- Java - 守護執行緒
- Java - 執行緒組
- Java - 關閉鉤子
Java 同步
Java 網路程式設計
- Java - 網路程式設計
- Java - 套接字程式設計
- Java - URL 處理
- Java - URL 類
- Java - URLConnection 類
- Java - HttpURLConnection 類
- Java - Socket 類
- Java - 泛型
Java 集合
Java 介面
Java 資料結構
Java 集合演算法
高階 Java
- Java - 命令列引數
- Java - Lambda 表示式
- Java - 傳送郵件
- Java - Applet 基礎
- Java - Javadoc 註釋
- Java - 自動裝箱和拆箱
- Java - 檔案不匹配方法
- Java - REPL (JShell)
- Java - 多版本 Jar 檔案
- Java - 私有介面方法
- Java - 內部類菱形運算子
- Java - 多解析度影像 API
- Java - 集合工廠方法
- Java - 模組系統
- Java - Nashorn JavaScript
- Java - Optional 類
- Java - 方法引用
- Java - 函式式介面
- Java - 預設方法
- Java - Base64 編碼解碼
- Java - switch 表示式
- Java - Teeing 收集器
- Java - 微基準測試
- Java - 文字塊
- Java - 動態 CDS 歸檔
- Java - Z 垃圾收集器 (ZGC)
- Java - 空指標異常
- Java - 打包工具
- Java - 密封類
- Java - 記錄類
- Java - 隱藏類
- Java - 模式匹配
- Java - 簡潔數字格式化
- Java - 垃圾回收
- Java - JIT 編譯器
Java 其他
- Java - 遞迴
- Java - 正則表示式
- Java - 序列化
- Java - 字串
- Java - Process API改進
- Java - Stream API改進
- Java - 增強型@Deprecated 註解
- Java - CompletableFuture API改進
- Java - 流
- Java - 日期時間 API
- Java 8 - 新特性
- Java 9 - 新特性
- Java 10 - 新特性
- Java 11 - 新特性
- Java 12 - 新特性
- Java 13 - 新特性
- Java 14 - 新特性
- Java 15 - 新特性
- Java 16 - 新特性
Java API 與框架
Java 類參考
- Java - Scanner
- Java - 陣列
- Java - 字串
- Java - Date
- Java - ArrayList
- Java - Vector
- Java - Stack
- Java - PriorityQueue
- Java - LinkedList
- Java - ArrayDeque
- Java - HashMap
- Java - LinkedHashMap
- Java - WeakHashMap
- Java - EnumMap
- Java - TreeMap
- Java - IdentityHashMap
- Java - HashSet
- Java - EnumSet
- Java - LinkedHashSet
- Java - TreeSet
- Java - BitSet
- Java - Dictionary
- Java - Hashtable
- Java - Properties
- Java - Collection
- Java - Array
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 的強大功能。