首页(162) xml(5) spring(1) 生活(8) java(70) 代码(10) 英语(4) 数据库(7) c#(14) 成长(10) 软件工程(27)  写新日志
 
 

玻璃杯中的花生壳

  真爱的事业和真正的爱情一生只有一次,都值得我们温柔地相待,因为那种感觉是永远都无法复制的, 这世界真正属于你的东西其实并不多,你不好好珍惜,它便会离你而去,包括机遇,包括爱情,包括生命。
   不要找任何理由,  当幸福在你身边的时候就抓住它,你就一定会很幸福! 
   

时 间 记 忆
«September 2025»
123456
78910111213
14151617181920
21222324252627
282930

最 新 评 论
回复:xml的Jdom解析过程详解
回复:突然想到的几句话!
 Boyle came out of n
回复:xml的Jdom解析过程详解
回复:配置Spring数据源
回复:使用SAX解析XML
回复:java中写文件操作时FileOu
回复:关联和依赖关系的区分
回复:HttpSessionListen
回复:Spring AOP四种创建通知(

最 新 日 志
Java开发者的十大戒律
配置Spring数据源
java多线程设计模式
java中switch的使用
性格,编码,测试
突然想到的几句话!
理解Spring AOP中的关键概念
Spring AOP四种创建通知(拦截器
xml的四种解析方法 比较 sax,do
xml的Jdom解析过程详解

最 新 留 言
签写新留言

我渴望知识
很好的东东
帖子不错,道声谢
想拜师学艺
我的呼喊

搜 索


用 户 登 录
用户名称:
登陆密码:
密码保存:

友 情 连 接

模板设计:部落窝模板世界

blog名称:玻璃杯中的花生壳
日志总数:162
评论数量:249
留言数量:1
访问次数:826985
建立时间:2004年11月4日
 
 
 
[代码]java写的能将汉字翻译成拼音的类 
[ 2006/9/28 15:03:54 | By: 玻璃杯中的花生壳 ]
 
import java.io.UnsupportedEncodingException;/*** 取得给定汉字串的首字母串,即声母串* <p>Title: ChineseCharToEn</p>* <p>@author javer QQ:84831612</p>* @version 1.0* @date 2004-02-19* 注:只支持GB2312字符集中的汉字*/public final class ChineseCharToEn{private final static int[] li_SecPosValue ={1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787, 3106, 3212, 3472,3635, 3722, 3730, 3858, 4027, 4086, 4390, 4558, 4684, 4925, 5249, 5590};private final static String[] lc_FirstLetter ={"a", "b", "c", "d", "e", "f", "g", "h", "j", "k", "l", "m", "n", "o", "p","q", "r", "s", "t", "w", "x", "y", "z"};/*** 取得给定汉字串的首字母串,即声母串* @param str 给定汉字串* @return 声母串*/public String getAllFirstLetter(String str){if (str == null || str.trim().length() == 0){return "";}String _str = "";for (int i = 0; i < str.length(); i++){_str = _str + this.getFirstLetter(str.substring(i, i + 1));}return _str;}/*** 取得给定汉字的首字母,即声母* @param chinese 给定的汉字* @return 给定汉字的声母*/public String getFirstLetter(String chinese){if (chinese == null || chinese.trim().length() == 0){return "";}chinese = this.conversionStr(chinese, "GB2312", "ISO8859-1");if (chinese.length() > 1) //判断是不是汉字{int li_SectorCode = (int) chinese.charAt(0); //汉字区码int li_PositionCode = (int) chinese.charAt(1); //汉字位码li_SectorCode = li_SectorCode - 160;li_PositionCode = li_PositionCode - 160;int li_SecPosCode = li_SectorCode * 100 + li_PositionCode; //汉字区位码if (li_SecPosCode > 1600 && li_SecPosCode < 5590){for (int i = 0; i < 23; i++){if (li_SecPosCode >= li_SecPosValue[i] &&li_SecPosCode < li_SecPosValue[i + 1]){chinese = lc_FirstLetter[i];break;}}}else //非汉字字符,如图形符号或ASCII码{chinese = this.conversionStr(chinese, "ISO8859-1", "GB2312");chinese = chinese.substring(0,1);}}return chinese;}/*** 字符串编码转换* @param str 要转换编码的字符串* @param charsetName 原来的编码* @param toCharsetName 转换后的编码* @return 经过编码转换后的字符串*/private String conversionStr(String str, String charsetName,String toCharsetName){try{str = new String(str.getBytes(charsetName), toCharsetName);}catch (UnsupportedEncodingException ex){System.out.println("字符串编码转换异常:" + ex.getMessage());}return str;}}package com.javer.test;import com.javer.blog.common.ChineseCharToEn; /*** 测试程序* <p>Title: JaverTest</p>* @author javer QQ:84831612*/public class JaverTest{public static void main(String[] args){ChineseCharToEn cte = new ChineseCharToEn();System.out.println("\"夜未眠\"的首个拼音字母是:" + cte.getFirstLetter("夜未眠"));System.out.println("\"Javer夜未眠\"的首个拼音字母是:" + cte.getFirstLetter("Javer夜未眠"));System.out.println("\"Javer夜未眠\"的全部字母的拼音字母是:" + cte.getAllFirstLetter("Javer夜未眠"));}}
 

阅读全文(2248) | 回复(-1) | 编辑 | 精华
 

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
 
部落窝Blog模板世界部落窝Blog模板世界
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.203 second(s), page refreshed 144774634 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号