[Java] 한글 문자열에서 초성 얻기

예를 들어, ‘대한민국’의 첫자인 ‘대’의 초성을 얻는 코드입니다. ‘대’의 초성은 ‘ㄷ’입니다. 아래의 함수 코드는 ‘대한민국’과 같은 문자열을 인자로 받아 그 결과로 ‘ㄷ’ 문자열을 반환하는 함수입니다.

String getInitialSound(String text) {
    String[] chs = { 
        "ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", 
        "ㄹ", "ㅁ", "ㅂ", "ㅃ", "ㅅ", 
        "ㅆ", "ㅇ", "ㅈ", "ㅉ", "ㅊ", 
        "ㅋ", "ㅌ", "ㅍ", "ㅎ" 
    };
		
    if(text.length() > 0) {
        char chName = text.charAt(0);
        if(chName >= 0xAC00)
        {
            int uniVal = chName - 0xAC00;
            int cho = ((uniVal - (uniVal % 28))/28)/21;

            return chs[cho];
        }
    }
   		
    return null; 
}

위의 함수를 간단히 테스트하는 코드 예는 아래와 같습니다.

System.out.println(getInitialSound("자바"));

결과는 ‘ㅈ’입니다.

[Java] AES 암호화

자바에서 문자열에 대한 암호화 방법입니다. 문자열이므로 특정한 데이터 형식, 즉 바이너리까지 포함하여 암호화가 가능합니다. 사용방법은 다음과 같습니다.

public static void main(String[] args) {
    try {
        String e = StringCrypto.encrypt(
            "GEOSERVICE", 
            "안녕하세요, 2014년 새해 복 많이 받으세요!"
        );

        System.out.println(e);
        String d = StringCrypto.decrypt("GEOSERVICE", e);
        System.out.println(d);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

문자열에 대한 암호화를 작업시에 간단히 할 수 있도록 StringCrypto라는 클래스로 묶었습니다. 이 클래스는 Java에서 이미 구현한 암호화 알고리즘 중에 AES를 사용합니다. 실행 결과는 다음과 같습니다.

사용자 삽입 이미지
첫줄은 ‘안녕하세요, 2014년 새해 복 많이 받으세요!’에 대한 문자열을 암호화하여 HEX 코드로 표시한 것이고 다음 줄은 HEX 코드로 암호화된 것을 다시 복원한 것입니다. 아래는 위의 코드와 함께 StringCrypto 클래스에 대한 소스의 다운로드입니다.

2014년, 새해 복 많이 받으시고 좋은 일만 가득하시기 바랍니다. ㅡ !