자바의 Character 클래스는 기본(primitive) 타입인 char 값을 객체 형태로 감싸는 래퍼(Wrapper) 클래스입니다. Character 객체는 내부에 char 타입의 필드 하나를 포함하고 있으며, 이를 통해 문자와 관련된 다양한 유틸리티 기능을 활용할 수 있습니다.
Character 클래스의 주요 메서드
Character 클래스는 문자 검사, 변환, 코드 포인트 처리 등을 위한 다양한 정적(static) 및 인스턴스 메서드를 제공합니다. 대표적인 메서드는 다음과 같습니다.
| 반환 타입 | 메서드 및 설명 |
|---|---|
| static int | charCount(int codePoint) 지정된 코드 포인트(code point)를 표현하는 데 필요한 char 값의 개수를 반환합니다. |
| char | charValue() 해당 Character 객체가 감싸고 있는 char 값을 반환합니다. |
| static int | codePointAt(char[] a, int index) char 배열에서 주어진 인덱스 위치의 코드 포인트를 반환합니다. |
| static int | codePointAt(char[] a, int index, int limit) char 배열에서 주어진 인덱스의 코드 포인트를 반환하되, limit보다 작은 인덱스의 배열 요소만 사용할 수 있습니다. |
| static int | codePointAt(CharSequence seq, int index) CharSequence에서 주어진 인덱스 위치의 코드 포인트를 반환합니다. |
| static int | codePointBefore(char[] a, int index) char 배열에서 주어진 인덱스 바로 앞 위치의 코드 포인트를 반환합니다. |
예제 1: isLetter() 메서드 활용
isLetter() 메서드는 전달된 문자가 알파벳 글자(letter)인지 여부를 판별합니다. 아래 예제를 살펴보겠습니다.
import java.lang.*;
public class Demo {
public static void main(String[] args){
System.out.println(Character.isLetter('0'));
System.out.println(Character.isLetter('h'));
System.out.println(Character.isLetter('K'));
}
}실행 결과
false true true
숫자 '0'은 글자가 아니므로 false가 출력되고, 소문자 'h'와 대문자 'K'는 알파벳 글자이므로 true가 출력됩니다.
예제 2: isLetter()와 toString() 함께 사용
이번에는 toString() 메서드를 추가로 활용한 예제입니다. toString()은 char 값을 문자열(String) 형태로 변환하여 반환합니다.
import java.lang.*;
public class Demo {
public static void main(String[] args){
System.out.println(Character.isLetter('0'));
System.out.println(Character.isLetter('h'));
System.out.println(Character.isLetter('K'));
System.out.println(Character.toString('0'));
System.out.println(Character.toString('H'));
}
}실행 결과
false true true 0 H
정리
Character 클래스는 단순히 char 값을 객체로 감싸는 것을 넘어, 문자 판별(isLetter, isDigit 등), 변환(toString, toUpperCase 등), 유니코드 코드 포인트 처리(codePointAt, charCount 등)까지 폭넓은 기능을 제공합니다. 문자열 처리 로직을 작성할 때 이러한 메서드들을 적절히 활용하면 더욱 안전하고 가독성 높은 코드를 작성할 수 있습니다.