개요
이 글에서는 문자열 값을 이용해 열거형(Enum)을 조회하는 방법에 대해 알아보겠습니다. 열거형(Enum)은 상수 그룹(final 변수처럼 변경할 수 없는 변수들)을 나타내는 특별한 '클래스'입니다.
아래 예제를 통해 실제 동작 방식을 확인해 보겠습니다.
입력 예시
조회할 문자열: Java
출력 결과
결과:
JAVA
알고리즘
Step 1 - 시작
Step 2 - input_string이라는 문자열과 Languages 타입의 result 객체를 선언한다.
Step 3 - 값을 정의한다.
Step 4 - .valueOf() 메서드를 사용하여 열거형에서 해당 문자열을 가져온다.
Step 5 - 결과를 출력한다.
Step 6 - 종료
예제 1: valueOf() 메서드 활용
다음 예제에서는 valueOf() 메서드를 사용하여 열거형 값을 조회하고 출력합니다. 입력된 문자열을 toUpperCase()로 대문자로 변환한 후 열거형 상수와 매칭하는 점에 주목하세요.
public class Demo {
public enum Languages {
JAVA, SCALA, PYTHON, MYSQL
}
public static void main(String[] args) {
String input_string = "Java";
System.out.println("조회할 문자열: " +input_string);
Languages result = Languages.valueOf(input_string.toUpperCase());
System.out.println("\n결과:");
System.out.println(result);
}
}실행 결과
조회할 문자열: Java
결과:
JAVA
참고: valueOf() 메서드는 전달된 문자열이 열거형에 존재하지 않는 경우 IllegalArgumentException을 발생시킵니다. 따라서 실무에서는 try-catch 블록으로 감싸거나 사전에 유효성을 검사하는 것이 안전합니다.
예제 2: name() 메서드 활용
이번에는 .name() 메서드를 사용하여 열거형 상수의 이름을 문자열 형태로 출력해 보겠습니다.
enum Languages {
Java,
Scala,
Python,
Mysql;
}
class Demo {
public static void main(String[] args) {
System.out.println("ENUM의 값들은 다음과 같습니다:");
System.out.println(Languages.Java.name());
System.out.println(Languages.Scala.name());
System.out.println(Languages.Python.name());
System.out.println(Languages.Mysql.name());
}
}실행 결과
ENUM의 값들은 다음과 같습니다:
Java
Scala
Python
Mysql
마무리
지금까지 두 가지 방식으로 열거형을 다루는 방법을 살펴보았습니다. valueOf()는 문자열을 열거형 상수로 변환할 때 유용하며, name()은 열거형 상수를 다시 문자열로 가져올 때 사용됩니다. 두 메서드를 적절히 활용하면 문자열과 열거형 간의 변환을 손쉽게 처리할 수 있습니다.