NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Java 3. Char 형식

    페이지 정보

    본문

    안녕하세요. 소심비형입니다. 8월의 휴가도 이제 끝나가는군요. 하지만, 다음주 8월 14일(금)을 임시 공휴일로 지정하고 14일 하루 동안 전국 고속도로 통행료를 면제한다네요. 직장인인 저야 좋지만, 모든 국민이 쉬는것도 아닌데 민자 고속도로 통행료까지 정부에서 수익을 세금으로 보전해주는건 아니라고 생각됩니다.

     

    오늘은 char형에 대해서 알아보도록 할께요. char는 Primitive Data Type입니다. Character의 약어로, Java에서는 문자형입니다. char는 하나의 캐릭터를 저장하며 16비트 부호없는 유니코드 문자를 나타냅니다. 0~216-1의 범위를 가지며 다음의 예제와 같이 '(Single quotation mark)로 표시합니다. 문자열의 경우에는 String이며 "(Double quotation mark)로 표시합니다.

    • Char: 'a'
    • String: "abcd" or "a"

     

    아래는 테스트하기 위한 전체 코드입니다.

    이클립스에 Char.java 클래스를 하나 추가한 후 아래의 코드를 붙여넣기 한 다음 결과를 확인해 봅시다.

    package JavaType;
     
    public class Char {
        public static void main(String[] args) {
     
            char[] chars = new char[4];
            chars[0] = 'X'; // Character literal
            chars[1] = 0x0058; // Hexadecimal
            chars[2] = (char) 88; // Cast from integral type
            chars[3] = '\u0058'; // Unicode
            
            for (char c : chars) {
                System.out.println(c + " ");
            }
        }
    }

     

     

    위의 예제는 char변수 4개를 동일한 문자 x로 초기화합니다. 9라인의 Hexadecimal(16진수)의 경우에는 홑따옴표(Single Quote)를 사용하지 않습니다. C#과 다른 부분으로 Java에서는 0x로 시작하면 정수형의 16진수로 인식합니다. 따라서 묵시적 형변환이 가능하게 됩니다. 만약, C#에서 위와같이 한다면 명시적으로 캐스팅해야합니다. C#에서는 상수 리터럴로 인식하기 때문입니다.

    LAj3RRm.png

     

     

    char형식은 int, long, float, double로 암시적으로 변환할 수 있습니다. 그러나 다른 형식에서 char형식으로의 암시적 변환은 없습니다. 이 부분은 C#과 동일하게 적용됩니다. C#에서는 Built-in type이라고 부르며 Java에서는 Primitive data type이라 부릅니다. 사실 일반적인 프로그래밍에서 char를 쓸일은 그리 많지 않습니다. 대부분 문자열(String)로 처리가 가능하기 때문이죠. 하지만, 매크로와 같은 로우레벨 시스템으로 문자를 전달해야 한다면 자주 사용하게 됩니다. 윈도우와 호환되는 인터페이스가 대부분 char로 데이터를 주고받기 때문입니다.

    J512ObI.gif

     

     

    문자열을 핸들링하는 방법만으로도 수십 페이지의 내용을 작성할 수 있습니다. 여러가지 자료형들과 명시적 또는 묵시적 캐스팅도 깊이 다루어야 할 문제이기 때문입니다. 우리나라와 같이 비영어권인 경우 인코딩도 문제가 될 수 있고, 각종 에디터의 BOM(Byte Order Mark)도 알 수 없는 에러를 발생시키는 요인입니다. 기반 지식이 없이는 이런 에러들에 대해 대응하기가 어렵죠^^; 특히나 경험없이 설계된 시스템이에서 예측할 수 없는 에러를 만나면 더욱 더 큰 난관에 부딪히게 됩니다. 앞으로 천천히 하나씩 알아가보도록 하겠습니다.

    다음 시간에...

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.