Character — 문자 래퍼 클래스

Character — 문자 래퍼 클래스

Character 클래스는 원시 타입 char의 값을 객체로 감쌉니다. Character 클래스의 객체는 타입이 char인 단일 필드를 포함합니다. 또한 이 클래스는 문자의 범주(소문자, 숫자 등)를 결정하고 문자를 대문자에서 소문자로, 또는 그 반대로 변환하는 많은 정적 메서드를 제공합니다.

출처: Java API Reference

본문

Character 클래스의 필드와 메서드는 유니코드 표준, 특히 유니코드 문자 데이터베이스(Unicode Character Database)의 일부인 UnicodeData 파일의 문자 정보를 기준으로 정의됩니다. 문자 정보는 유니코드 표준 15.0 버전에 기반합니다.

public final class Character extends Object
    implements Serializable, Comparable<Character>, Constable

코드 포인트와 서로게이트

char 데이터 타입은 원래 문자를 고정 너비 16비트 엔티티로 정의한 초기 유니코드 사양에 기반합니다. 이후 유니코드 표준은 16비트 이상을 요구하는 문자를 허용하도록 바뀌었습니다. 이제 유효한 코드 포인트의 범위는 U+0000부터 U+10FFFF이며, 이를 유니코드 스칼라 값(Unicode scalar value)이라고 합니다.

public static final int MIN_VALUE   // '\u0000'
public static final int MAX_VALUE   // '\uffff'
public static final int MIN_CODE_POINT
public static final int MAX_CODE_POINT
public static final Class<Character> TYPE
public static final int SIZE
public static final int BYTES

주요 메서드

public static boolean isLetter(char ch)
public static boolean isDigit(char ch)
public static boolean isLetterOrDigit(char ch)
public static boolean isWhitespace(char ch)
public static boolean isUpperCase(char ch)
public static char toUpperCase(char ch)
public static char toLowerCase(char ch)
public static boolean isEmoji(int codePoint)
public static String getName(int codePoint)
public static int codePointOf(String name)
public static boolean isValidCodePoint(int codePoint)
public static boolean isHighSurrogate(char ch)
public static int codePointAt(CharSequence seq, int index)
public static int toChars(int codePoint)
  • 문자 범주 판별 메서드(isLetter, isDigit 등)는 char 또는 코드 포인트(int)를 받는 오버로드가 있습니다.
  • 변환 메서드는 대소문자·타이틀케이스 변환을 수행합니다.
  • 이모지 관련 메서드(isEmoji, isEmojiPresentation 등)와 코드 포인트 관련 메서드가 추가되어 있습니다.

Java 플랫폼은 시간에 따라 여러 유니코드 표준 버전을 지원해 왔으며, Java SE 20은 유니코드 15.0을 지원합니다.

더 알아보기 (Learn more)