Java char 타입의 주요 사용 사례와 예제
Java에서 char는 문자 하나를 저장하기 위한 기본 데이터 타입입니다. 하지만 단순히 글자 하나를 담는 기능을 넘어서, 유니코드 처리, 문자 비교, 제어문과의 연동 등 다양한 역할을 수행합니다. 이 글에서는 Java의 char 타입이 어떻게 사용되는지, 그리고 실무에서 활용 가능한 여러 예제를 통해 구조적으로 정리해 보겠습니다.

목차
- char 타입의 정의 및 저장 방식
- 유니코드와의 관계
- 문자 리터럴과 이스케이프 시퀀스
- char와 숫자(ASCII/유니코드) 간 변환
- 제어문에서의 char 활용
- char와 String의 차이점
- 실전 예제: char 활용 사례
1. char 타입의 정의 및 저장 방식
Java의 char 타입은 2바이트(16비트) 정수로, 하나의 유니코드 문자 값을 저장합니다. 이는 ASCII보다 훨씬 넓은 범위의 문자를 표현할 수 있도록 설계된 구조입니다.
- 기본 타입이면서 객체가 아님
- 2바이트로 약 65,536개의 문자 표현 가능
- 문자 인코딩은 UTF-16 기반
char ch = 'A';
System.out.println(ch); // 출력: A
2. 유니코드와의 관계
Java는 국제화를 고려하여 설계된 언어입니다. char는 유니코드 문자 하나를 담으며, 이로 인해 한글, 일본어, 중국어 등 다양한 언어의 문자를 다룰 수 있습니다.
char hangeul = '한';
char chinese = '文';
System.out.println(hangeul + " " + chinese); // 출력: 한 文
유니코드 값을 16진수로 직접 지정할 수도 있습니다:
char heart = '\u2665'; // ♥
System.out.println(heart);
3. 문자 리터럴과 이스케이프 시퀀스
char 값은 작은 따옴표로 감싸야 하며, 특수문자나 제어문자는 이스케이프 시퀀스를 사용합니다.
| 이스케이프 문자 | 설명 |
|---|---|
| '\n' | 줄 바꿈 |
| '\t' | 탭 |
| '\'' | 작은따옴표 |
4. char와 숫자(ASCII/유니코드) 간 변환
char는 내부적으로 숫자이므로, 정수형으로 자동 형변환되거나, 수식 계산에도 사용될 수 있습니다.
char c = 'A';
int code = c; // 유니코드 값: 65
System.out.println(code);
반대로, 숫자를 char로 변환하여 특정 문자를 얻을 수도 있습니다.
int n = 66;
char c2 = (char)n; // 'B'
System.out.println(c2);

5. 제어문에서의 char 활용
char는 조건문, 반복문 등에서 문자 범위를 체크하거나 문자 분기를 구현할 때 유용하게 쓰입니다.
char input = 'y';
if (input == 'y' || input == 'Y') {
System.out.println("Yes!");
}
또는 범위 조건으로 알파벳 여부를 판별할 수도 있습니다:
if (c >= 'a' && c <= 'z') {
System.out.println("소문자입니다.");
}
6. char와 String의 차이점
Java에서는 char는 문자 하나, String은 문자열(문자 배열)을 의미합니다. 따라서 다음과 같은 차이가 존재합니다:
char: 기본형(primitive), 작은따옴표('A')String: 참조형(reference), 큰따옴표("A")- 문자 비교 시
==사용 가능 (char), 문자열 비교 시equals()필요 (String)
7. 실전 예제: char 활용 사례
다양한 char 활용 예제를 살펴보면 다음과 같습니다:
- 알파벳 대/소문자 변환
- 문자 유효성 검사
- 사용자 입력 분기 처리
char c = 'g';
char upper = (char)(c - 32);
System.out.println(upper); // G
ASCII 코드의 규칙을 이용해 소문자를 대문자로 쉽게 바꿀 수 있습니다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
| Java 실수형 데이터 타입, float vs double (0) | 2025.05.06 |
|---|---|
| Java 정수형(Integer Types) 크기, 범위, 메모리 사용 분석 (0) | 2025.04.28 |
| boolean 데이터 타입으로 자바 프로그램 논리 제어하기 (0) | 2025.04.16 |
| Java 참조 데이터 타입 정리: 객체, 배열, 인터페이스까지 (0) | 2025.04.10 |
| Java 실수형(Floating-Point) 데이터 타입: 정밀도, 연산, 오차 해결 방법 (0) | 2025.04.04 |