01.JAVA/Java2008. 7. 11. 10:48
반응형

 

자바에서 각 문자는 내부적으로 유니코드값으로 저장되므로
char의 값을 유니코드 테이블과 비교해보면 이것이 영어인지 한글인지 혹은 한자인지 알수 있을 것입니다.
(질문은 단어가 한글인지 영문인지를 묻는데
단어는 물론 한영이 섞여 있을 수도 있고 자바 내부에서는
유니코드로 처리되므로 큰 의미가 없을 것입니다.


// charTest.java

class charTest {
	public static void main(String args[]) {
		for (int i=0;i<args.length;i++) {
			System.out.println("args["+i+"]="+args[i]);	
			char[] charArray=args[i].toCharArray();
			for (int j=0; j<charArray.length; j++) {
				System.out.print(" 0x"+Integer.toHexString((int)charArray[j]));
				if (charArray[j]>='A' && charArray[j]<='z')
					System.out.print("(English)");
				else if (charArray[j]>='\uAC00' && charArray[j]<='\uD7A3')
					System.out.print("(한글)");
			}
			System.out.println("");
		}
	}
}

실행 예
C:\javaworks>java charTest AbZz 가나다라한글
args[0]=AbZz
0x41(English) 0x62(English) 0x5a(English) 0x7a(English)
args[1]=가나다라한글
0xac00(한글) 0xb098(한글) 0xb2e4(한글) 0xb77c(한글) 0xd55c(한글) 0xae00(한글)

Posted by 1010