介绍
Java 中的 getName()
方法是 Character
类的一部分,它返回与给定 Unicode 码点表示的字符相关联的 Unicode 名称(如果可用)。在 Java 程序中表示 Unicode 字符时,此方法非常有用。
Java 中的 getName()
方法是 Character
类的一部分,它返回与给定 Unicode 码点表示的字符相关联的 Unicode 名称(如果可用)。在 Java 程序中表示 Unicode 字符时,此方法非常有用。
在 ~/project
目录下使用以下命令创建一个名为 CharGetName.java
的文件:
touch ~/project/CharGetName.java
使用你喜欢的文本编辑器打开 CharGetName.java
文件。
在代码的第一行,我们需要导入所需的类,即 Character
类。导入方式如下:
import java.lang.Character;
定义一个名为 CharGetName
的类,并实现 main()
方法。在 main()
方法中,我们将执行获取不同字符(如 "H"、"f" 等)的 Unicode 名称的操作。
完整代码如下:
import java.lang.Character;
public class CharGetName {
public static void main(String[] args) {
int codepoint1 = 72; // H
int codepoint2 = 102; // f
int codepoint3 = 0;
String name1 = Character.getName(codepoint1);
String name2 = Character.getName(codepoint2);
String name3 = Character.getName(codepoint3);
System.out.println("The name of character " + Character.toChars(codepoint1)[0] + " is "+name1);
System.out.println("The name of character " + Character.toChars(codepoint2)[0] + " is "+name2);
System.out.println("The name of character with codepoint 0 is "+ name3);
}
}
在这一步中,我们定义了一个名为 CharGetName
的类,并在其中实现了 main
方法。在 main
方法中,我们创建了一个整数变量,其值为字符的 Unicode 码点:codepoint1
的值为 72
(H),codepoint2
的值为 102
(f)。我们使用 Character.getName()
方法获取字符的名称,然后使用 System.out.println()
方法打印字符的名称。
使用以下命令编译 CharGetName
Java 文件:
javac CharGetName.java
编译过程成功完成后,使用以下命令运行 Java 代码:
java CharGetName
现在,让我们创建一个程序,该程序将接收用户输入并在控制台上返回字符的名称。
import java.util.Scanner;
import java.lang.Character;
public class CharGetName {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a character: ");
char ch = scanner.next().charAt(0);
int codepoint = ch;
String name = Character.getName(codepoint);
System.out.println("The name of character "+ch+" is "+name);
}
}
在这里,创建了一个 Scanner
对象以获取用户输入。我们使用 Scanner.next()
方法获取输入值,然后通过 Character()
方法将输入的字符转换为整数码点,以查找其名称。之后,我们使用 System.out.println()
方法打印字符的名称。
使用以下命令编译 CharGetName
Java 文件:
javac CharGetName.java
编译过程成功完成后,使用以下命令运行 Java 代码:
java CharGetName
现在,输入你想要查找名称的字符。例如,输入 "A"。你将在控制台上看到该字符的名称。
现在,让我们看看如果输入无效字符,程序会如何响应。
import java.util.Scanner;
import java.lang.Character;
public class CharGetName {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a character: ");
char ch = scanner.next().charAt(0);
if(!Character.isDefined(ch)) {
System.out.println("\nINVALID INPUT: Please enter a valid character.");
return;
}
int codepoint = ch;
String name = Character.getName(codepoint);
System.out.println("\nThe name of character "+ch+" is "+name);
}
}
在这个程序中,我们检查输入的字符是否已定义。如果输入的字符未定义,则会在控制台上打印一条消息:“无效输入:请输入有效字符。”如果字符已定义,则像之前一样获取其名称,并用适当的消息打印出来。
使用以下命令编译 CharGetName
Java 文件:
javac CharGetName.java
编译过程成功完成后,使用以下命令运行 Java 代码:
java CharGetName
现在,输入一个无效的输入,例如 "8" 或 "$"。你将收到一条错误消息:“无效输入:请输入有效字符。”
现在,让我们看看如果使用未分配的字符作为输入,程序会如何响应。
import java.util.Scanner;
import java.lang.Character;
public class CharGetName {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a character: ");
char ch = scanner.next().charAt(0);
if(!Character.isDefined(ch)) {
System.out.println("\nINVALID INPUT: Please enter a valid character.");
return;
}
String name = Character.getName(ch);
if(name == null) {
System.out.println("\nNO NAME FOUND: There is no assigned name for this character.");
return;
}
System.out.println("\nThe name of character "+ch+" is "+name);
}
}
在这里,我们使用了 Character.getName(ch)
方法,而不是 Character.getName(codepoint)
。如果输入的字符没有分配名称,则该方法将返回 null
。因此,我们检查返回的名称是否为 null
。如果是 null
,则会打印一条消息:“未找到名称:此字符没有分配名称。”
使用以下命令编译 CharGetName
Java 文件:
javac CharGetName.java
编译过程成功完成后,使用以下命令运行 Java 代码:
java CharGetName
现在,输入一个未分配的字符,例如 null ("\u0000"),你将收到一条消息:“未找到名称:此字符没有分配名称。”
在本实验中,我们学习了 Java 中的 getName()
方法,并通过实现 Java 代码示例了解了如何使用它来获取字符的 Unicode 名称。我们还学习了如何读取用户输入,以及如何在 Ubuntu 系统的终端中创建和运行 Java 程序来处理错误。