📄 hanguljamoutil.java
字号:
/*
* @(#)HangulJamoUtil.java
*
* Copyright (c) 2002 Jang-Ho Hwang,
* All Rights Reserved.
*/
package rath.util;
import java.io.CharArrayWriter;
/**
* Charset Converting utililty for
* HANGUL_JAMO to HANGUL_SYLLABILIS
*
* @author Jang-Ho Hwang, rath@linuxkorea.co.kr
* @version $Id: HangulJamoUtil.java,v 1.2 2002/04/18 17:01:54 xrath Exp $, since 2002/04/18
*/
public class HangulJamoUtil
{
public static char createChar( int[] chars, int len )
{
int ch = 44032;
switch(len)
{
case 1:
ch += chars[0] * 588;
break;
case 2:
ch += chars[0] * 588 + chars[1] * 28;
break;
case 3:
ch += chars[0] * 588 + chars[1] * 28 + chars[2] + 1;
break;
default:
ch = 0;
}
return (char)ch;
}
public static String getString( String jamo )
{
char[] chs = new char[ jamo.length() ];
jamo.getChars( 0, chs.length, chs, 0 );
CharArrayWriter caw = new CharArrayWriter();
int[] chars = new int[3];
for(int i=0; i<chs.length; i++)
{
chars[0] = chars[1] = chars[2] = 0;
int ich = (int)chs[i];
if( ich < 4352 || ich > 4607 )
{
caw.write( chs[i] );
continue;
}
if( ich >= 4352 && ich <= 4370 ) // 檬己
{
chars[0] = ich - 4352;
if( (i+1)!=chs.length )
{
int ich2 = (int)chs[i+1];
if( ich2 >= 4449 && ich2 <= 4469 )
{
i++;
chars[1] = ich2 - 4449;
if( (i+1)!=chs.length )
{
int ich3 = (int)chs[i+1];
if( ich3 >= 4520 && ich <= 4546 )
{
i++;
chars[2] = ich3 - 4520;
// 檬己 吝己 辆己
caw.write( createChar(chars, 3) );
}
else
// 檬己 吝己
caw.write( createChar(chars, 2) );
}
}
else
// 檬己 窍唱楼府
caw.write( createChar(chars, 1) );
}
}
else
caw.write( '?' );
}
return new String(caw.toCharArray());
}
public static void main( String[] args ) throws Exception
{
System.out.println( getString("English Korean 窍捞 -_-") );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -