java传递汉字翻译为英文_java写的能将汉字翻译成拼音的类

/** *//**

#############################################################################

# DESCRIBE 将汉字转化成拼音

# DATE 2006-7-12

# COMPANY FLX

# PORJECT JAVA

#############################################################################

*/

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.Set;

public class CnToSpell {

private static LinkedHashMap spellMap = null;

static {

if (spellMap == null) {

spellMap = new

LinkedHashMap(400);

}

initialize();

System.out.println("Chinese transfer Spell

Done.");

}

private CnToSpell() {

}

/** *//**

* 获得单个汉字的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;

return ascii;

}

return 0; //错误

}

/** *//**

*

返回字符串的全拼,是汉字转化为全拼,其它字符不进行转换

* @param cnStr String

* 字符串

* @return String

* 转换成全拼后的字符串

*/

public static String getFullSpell(String cnStr)

{

if (null == cnStr || "".equals(cnStr.trim()))

{

return cnStr;

}

char[] chars = cnStr.toCharArray();

StringBuffer retuBuf = new StringBuffer();

for (int i = 0, Len = chars.length; i < Len;

i++) {

int ascii =

getCnAscii(chars[i]);

if (ascii == 0) {

//取ascii时出错

retuBuf.append(chars[i]);

} else {

String spell

= getSpellByAscii(ascii);

if (spell ==

null) {

retuBuf.append(chars[i]);

} else

{

retuBuf.append(spell);

} // end of

if spell == null

} // end of if ascii <=

-20400

} // end of for

return retuBuf.toString();

}

/** *//**

* 根据ASCII码到SpellMap中查找对应的拼音

* @param ascii int

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值