문자

문자

이 문서에서는 문자 데이터(char)에 대해서 다룬다.

문자 인코딩 방식

자바의 문자 체계

글자를 표현하기 위해 다양한 인코딩(Encoding) 방식이 존재한다. 이 내용에 대한 자세한 설명은 문자 인코딩 방식을 참조한다. 자바는 전 세계에서 컴퓨터가 사용되는 시점인 1995년에 정식 발표된 언어이기 때문에 글자 종류를 구분하지 않고 CP949 방식으로 표현하도록 구성되어 있다. 이러한 이유로 문자를 저장하는 char 형태는 2byte의 크기를 가지게 된다.

문자 데모 1

import java.lang.*;
public class CharacterExample1 {
    public static void main(String[] args){
        char a = 65;
        char b = 'A';
        
        System.out.println(a);
        System.out.println(b);
    }
}

위의 예제를 실행하면 화면에 A 두 개가 출력된다. 컴퓨터는 A65와 동일하게 생각한다는 것인데, 이것은 ASCII라는 규약에 의해 정해진 것이다. 숫자에 특별한 의미가 있다기보다 숫자밖에 알 수 없는 컴퓨터에게 글자를 전달하기 위한 세계적인 약속이므로 외우는 수밖에 없다. 마치 파란불에 횡단보도를 건너야 하는 것과 같은 이치이다. 단일문자는 외따옴표(`)를 사용하여 표시한다는 것에 주의한다.

문자 데모 2

import java.lang.*;
public class CharacterExample2 {
    public static void main(String[] args){
        char a = 'A';
        char b = 2;
        
        System.out.println(a + b);
    }
}

char는 약속된 숫자값이 있기 때문에 숫자처럼 계산이 가능하다. 글자로 계산을 하는 일은 많지 않지만 필요하다면 할 수도 있기 때문에 예제처럼 A에 2를 더해보면 67이 나오는 것을 알 수 있다. A+2C가 나와야 하는데, 앞서 정수 부분에서 살펴본 것처럼 int보다 작은 형태는 계산 결과가 int이기 때문에 숫자로 출력되는 것을 확인할 수 있다. 원한다면 강제 변환도 가능한데, 이 부분은 다음 예제에서 다룬다.

문자 데모 3

import java.lang.*;
public class CharacterExample3 {
    public static void main(String[] args){
        int a = 44032;
        System.out.println(a);
        System.out.println((char)a);
        
        char b = '굿';
        System.out.println(b);
        System.out.println((int)b);
    }
}

실행하면 다음과 같은 출력화면이 나온다.

44032

한글 역시 번호를 가지고 있으며, 자바에서는 동일하게 2byte로 표현된다. 여기서 살펴볼 코드는 다음 코드이다.

(char)a

a는 int 형태이므로 출력하면 숫자인 44032가 출력되어야 하지만, (char)를 앞에 붙여주어 강제로 형태를 바꿀 수 있다. 이를 형변환이라고 부르는데, 원하는 시점에 가능하다면 형태를 강제로 변경할 수 있다. 자세한 내용은 해당 문서에서 다루도록 한다.

(int)b

위의 코드는 b를 int로 강제 변환하는 코드이며, 이를 이용하여 우리는 글자와 연결된 숫자를 알아낼 수 있다. 따라서 글자와 연결된 숫자를 외울 필요가 없으며, 필요하다면 코드를 작성하여 직접 확인해볼 수 있다.

Last updated