J2SE综合:JAVA实现把汉字转化成拼音(2)

文章作者 100test 发表时间 2007:03:14 16:40:13
来源 100Test.Com百考试题网


/**
* 获得单个汉字的Ascii.
* @param cn char
* 汉字字符
* @return int
* 错误返回 0,否则返回ascii
*/
public static int getCnAscii(char cn)
{
byte[] bytes = (String.valueOf(cn)).getBytes().
if(bytes == null || bytes.length > 2 || bytes.length <= 0){ //错误
return 0.
}
if(bytes.length == 1){ //英文字符
return bytes[0].
}
if(bytes.length == 2){ //中文字符
int hightByte = 256 bytes[0].
int lowByte = 256 bytes[1].

int ascii = (256 * hightByte lowByte) - 256 * 256.

//System.out.println("ASCII=" ascii).

return ascii.
}

return 0. //错误
}

/**
* 根据ASCII码到SpellMap中查找对应的拼音
* @param ascii int
* 字符对应的ASCII
* @return String
* 拼音,首先判断ASCII是否>0&.<160,如果是返回对应的字符,
*
否则到SpellMap中查找,如果没有找到拼音,则返回null,如果找到则返回拼音.
*/
public static String getSpellByAscii(int ascii)
{
if(ascii > 0 &.&. ascii < 160){ //单字符
return String.valueOf((char)ascii).
}

if(ascii < -20319 || ascii > -10247){ //不知道的字符
return null.
}

Set keySet = spellMap.keySet().
Iterator it = keySet.iterator().

String spell0 = null..
String spell = null.

int asciiRang0 = -20319.
int asciiRang.
while(it.hasNext()){

spell = (String)it.next().
Object valObj = spellMap.get(spell).
if(valObj instanceof Integer){
asciiRang = ((Integer)valObj).intValue().

if(ascii >= asciiRang0 &.&. ascii < asciiRang){ //区间找到
return(spell0 == null) ? spell : spell0.
}
else{
spell0 = spell.
asciiRang0 = asciiRang.
}
}
}

return null.

}


相关文章


Java深入:认识classClass及其应用
Java深入:认识classClass及其应用(2)
J2SE综合:JAVA实现把汉字转化成拼音(2)
J2SE综合:JAVA实现把汉字转化成拼音(1)
Java深入:编写高级JScript应用代码
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛