⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hanguljamoutil.java

📁 java实现msn的功能
💻 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 + -