소개
Java 의 getName() 메서드는 Character 클래스의 일부로, 주어진 유니코드 코드 포인트가 나타내는 문자에 할당된 유니코드 이름 (사용 가능한 경우) 을 반환합니다. 이 메서드는 Java 프로그램에서 유니코드 문자를 표현할 때 매우 유용합니다.
Java 의 getName() 메서드는 Character 클래스의 일부로, 주어진 유니코드 코드 포인트가 나타내는 문자에 할당된 유니코드 이름 (사용 가능한 경우) 을 반환합니다. 이 메서드는 Java 프로그램에서 유니코드 문자를 표현할 때 매우 유용합니다.
다음 명령을 사용하여 ~/project 디렉토리에 CharGetName.java라는 파일을 생성합니다.
touch ~/project/CharGetName.java
선호하는 텍스트 편집기에서 CharGetName.java 파일을 엽니다.
코드의 첫 번째 줄에서 Character 클래스와 같이 필요한 클래스를 임포트해야 합니다. 다음과 같이 임포트합니다.
import java.lang.Character;
CharGetName 클래스를 정의하고 main() 메서드를 구현합니다. main() 메서드 내에서 "H", "f" 등과 같은 다양한 문자의 유니코드 이름을 가져오는 작업을 Java 에서 수행합니다.
전체 코드는 다음과 같습니다.
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);
}
}
이 단계에서는 main 메서드를 포함하는 CharGetName이라는 클래스를 정의했습니다. main 메서드 내에서 문자의 유니코드 코드 포인트를 값으로 갖는 정수 변수를 생성했습니다. 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);
}
}
이 프로그램에서는 입력된 문자가 정의되었는지 여부를 확인합니다. 입력된 문자가 정의되지 않은 경우, "Invalid input: Please enter a valid character."라는 메시지를 콘솔에 출력하고, 문자가 정의된 경우에는 이전과 같이 이름을 가져와 적절한 메시지와 함께 출력합니다.
다음 명령을 사용하여 CharGetName Java 파일을 컴파일합니다.
javac CharGetName.java
컴파일 프로세스가 성공적으로 완료되면 다음 명령을 사용하여 java 코드를 실행합니다.
java CharGetName
이제 "8" 또는 "$"와 같은 유효하지 않은 입력을 입력하십시오. "INVALID INPUT: Please enter a valid character."라는 오류 메시지가 표시됩니다.
이제 할당되지 않은 문자를 입력으로 사용하면 프로그램이 어떻게 반응하는지 살펴보겠습니다.
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(codepoint) 대신 Character.getName(ch) 메서드를 사용하고 있습니다. 입력된 문자에 이름이 할당되지 않은 경우 null을 반환합니다. 따라서 반환된 이름이 null 인지 여부를 확인합니다. null 인 경우 "NO NAME FOUND: There is no assigned name for this character."라는 메시지를 출력합니다.
다음 명령을 사용하여 CharGetName Java 파일을 컴파일합니다.
javac CharGetName.java
컴파일 프로세스가 성공적으로 완료되면 다음 명령을 사용하여 java 코드를 실행합니다.
java CharGetName
이제 null ("\u0000") 과 같은 할당되지 않은 문자를 입력하면 "NO NAME FOUND: There is no assigned name for this character."라는 메시지가 표시됩니다.
이 랩에서는 Java 의 getName() 메서드에 대해 배우고, Java 코드 예제를 구현하여 문자의 유니코드 (Unicode) 이름을 얻는 방법을 배웠습니다. 또한 사용자 입력을 읽는 방법과 Ubuntu 시스템의 터미널에서 Java 프로그램을 생성하고 실행하여 오류를 처리하는 방법도 배웠습니다.