Java 简明教程
Java - Unicode System
Unicode 是一种国际字符集,包含全球多种语言的各种字符、符号和脚本。
Unicode System in Java
Java 编程语言作为平台独立的语言,内置了对 Unicode 字符的支持,允许开发人员创建可以无缝地使用不同语言和脚本的应用程序。
在 Unicode 之前,有多个标准来表示字符编码 −
-
ASCII − 适用于美国。
-
ISO 8859-1 − 适用于西欧语言。
-
KOI-8 − for Russian.
-
*GB18030 和 BIG-5 * − 适用于中文。
所以为了支持跨国应用程序代码,一些字符使用单字节,另一些使用双字节。甚至相同的代码在一种语言中可能表示不同的字符,而在另一种语言中可能表示其他字符。
为了克服上述缺点,开发了 Unicode 系统,其中每个字符由 2 个字节表示。由于 Java 是为多语言而开发的,因此它采用了 Unicode 系统。最低值由 \u0000 表示,最高值由 \uFFFF 表示。
Approaches: Working with Unicode Characters & Values
有两种处理 Java 中 Unicode 字符的方法:使用 Unicode 转义序列和直接存储 Unicode 字符。
第一种方法包括使用转义序列表示 Unicode 字符,当无法直接在 Java 代码中键入或显示字符时,这种方法很有用。第二种方法包括直接在 variables 中存储 Unicode 字符,当字符可以直接键入或显示时,这种方法更加方便。
方法的选择取决于程序的特定要求。但是总的来说,当字符可以直接键入或显示时,方法二更简单、更方便,而当字符不能直接键入或显示时,则需要使用方法一。
1. Using Unicode Escape Sequences
在 Java 中存储 Unicode 字符的一种方法是使用 Unicode 转义序列。转义序列是一系列表示特殊字符的字符。在 Java 中,Unicode 转义序列以字符 “\u” 开头,后面跟着四个十六进制数字,它们表示所需字符的 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);
}
}
编译并运行上面的程序。将产生以下结果 −
Output
Stored Unicode Character: A
在上面的代码片段中,Unicode 转义序列 “\u0041” 表示字符 “A”。将转义序列分配给 char 变量 unicodeChar,然后将存储的字符打印到控制台中。
2. Storing Unicode Values Directly
或者,您可以通过用单引号括住字符,直接在 char 变量中存储 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);
}
}
编译并运行上面的程序。将产生以下结果 −
Output
Stored Unicode Character: A
在此示例中,字符 “A” 直接用单引号括起来,并分配给 char 变量 unicodeChar。然后将存储的字符打印到控制台中。
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);
}
}
编译并运行上面的程序。将产生以下结果 −
Output
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: ®
Example 3: Assigning Unicode Characters and Values to Variables
此示例演示了如何操作已存储的 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);
}
}
编译并运行上面的程序。将产生以下结果 −
Output
Manipulated Unicode Characters:
Difference between A and a: -32
Calculated Letter C: "
Calculated Letter c: B