본문 바로가기

프로그래밍 언어/Java

Java char 타입의 주요 사용 사례와 예제

Java char 타입의 주요 사용 사례와 예제

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

 

 

목차

  1. char 타입의 정의 및 저장 방식
  2. 유니코드와의 관계
  3. 문자 리터럴과 이스케이프 시퀀스
  4. char와 숫자(ASCII/유니코드) 간 변환
  5. 제어문에서의 char 활용
  6. char와 String의 차이점
  7. 실전 예제: 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 코드의 규칙을 이용해 소문자를 대문자로 쉽게 바꿀 수 있습니다.