package ; import java.util.HashSet; import java.util.Set; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; /******************************************************************************* * pinyin4j is a plug-in, you can kind of Chinese characters into phonetic.Multi-tone character,Tone * Detailed view http://pinyin4j.sourceforge.net/ * * @author Administrator * @ClassName: Pinyin4jUtil * @Description: TODO * @author * @date Jan 13, 2012 9:28:28 AM */ public class PinyinTools { /*************************************************************************** * 获取中文汉字拼音 默认输出 * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 9:54:01 AM * @param chinese * @return */ public static String getPinyin(String chinese) { return getPinyinZh_CN(makeStringByStringSet(chinese)); } /*************************************************************************** * 拼音大写输出 * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 9:58:45 AM * @param chinese * @return */ public static String getPinyinToUpperCase(String chinese) { return getPinyinZh_CN(makeStringByStringSet(chinese)).toUpperCase(); } /*************************************************************************** * 拼音小写输出 * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 9:58:45 AM * @param chinese * @return */ public static String getPinyinToLowerCase(String chinese) { return getPinyinZh_CN(makeStringByStringSet(chinese)).toLowerCase(); } /*************************************************************************** * 首字母大写输出 * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 10:00:54 AM * @param chinese * @return */ public static String getPinyinFirstToUpperCase(String chinese) { return getPinyin(chinese); } /*************************************************************************** * 拼音简拼输出 * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 11:08:15 AM * @param chinese * @return */ public static String getPinyinJianPin(String chinese) { return getPinyinConvertJianPin(getPinyin(chinese)); } /*************************************************************************** * 字符集转换 * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 9:34:11 AM * @param chinese * 中文汉字 * @throws BadHanyuPinyinOutputFormatCombination */ public static Set<String> makeStringByStringSet(String chinese) { char[] chars = chinese.toCharArray(); if (chinese != null && !chinese.trim().equalsIgnoreCase("")) { char[] srcChar = chinese.toCharArray(); String[][] temp = new String[chinese.length()][]; for (int i = 0; i < srcChar.length; i++) { char c = srcChar[i]; // 是中文或者a-z或者A-Z转换拼音 if (String.valueOf(c).matches("[\\u4E00-\\u9FA5]+")) { try { temp[i] = PinyinHelper.toHanyuPinyinStringArray( chars[i], getDefaultOutputFormat()); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else if (((int) c >= 65 && (int) c <= 90) || ((int) c >= 97 && (int) c <= 122)) { temp[i] = new String[] { String.valueOf(srcChar[i]) }; } else { temp[i] = new String[] { "" }; } } String[] pingyinArray = Exchange(temp); Set<String> zhongWenPinYin = new HashSet<String>(); for (int i = 0; i < pingyinArray.length; i++) { zhongWenPinYin.add(pingyinArray[i]); } return zhongWenPinYin; } return null; } /*************************************************************************** * Default Format 默认输出格式 * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 9:35:51 AM * @return */ public static HanyuPinyinOutputFormat getDefaultOutputFormat() { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写 format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 没有音调数字 format.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);// u显示 return format; } /*************************************************************************** * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 9:39:54 AM * @param strJaggedArray * @return */ public static String[] Exchange(String[][] strJaggedArray) { String[][] temp = DoExchange(strJaggedArray); return temp[0]; } /*************************************************************************** * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 9:39:47 AM * @param strJaggedArray * @return */ private static String[][] DoExchange(String[][] strJaggedArray) { int len = strJaggedArray.length; if (len >= 2) { int len1 = strJaggedArray[0].length; int len2 = strJaggedArray[1].length; int newlen = len1 * len2; String[] temp = new String[newlen]; int Index = 0; for (int i = 0; i < len1; i++) { for (int j = 0; j < len2; j++) { temp[Index] = capitalize(strJaggedArray[0][i]) + capitalize(strJaggedArray[1][j]); Index++; } } String[][] newArray = new String[len - 1][]; for (int i = 2; i < len; i++) { newArray[i - 1] = strJaggedArray[i]; } newArray[0] = temp; return DoExchange(newArray); } else { return strJaggedArray; } } /*************************************************************************** * 首字母大写 * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 9:36:18 AM * @param s * @return */ public static String capitalize(String s) { char ch[]; ch = s.toCharArray(); if (ch[0] >= 'a' && ch[0] <= 'z') { ch[0] = (char) (ch[0] - 32); } String newString = new String(ch); return newString; } /*************************************************************************** * 字符串集合转换字符串(逗号分隔) * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 9:37:57 AM * @param stringSet * @return */ public static String getPinyinZh_CN(Set<String> stringSet) { StringBuilder str = new StringBuilder(); int i = 0; for (String s : stringSet) { if (i == stringSet.size() - 1) { str.append(s); } else { str.append(s + ","); } i++; } return str.toString(); } /*************************************************************************** * 获取每个拼音的简称 * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 11:05:58 AM * @param chinese * @return */ public static String getPinyinConvertJianPin(String chinese) { String[] strArray = chinese.split(","); String strChar = ""; for (String str : strArray) { char arr[] = str.toCharArray(); // 将字符串转化成char型数组 for (int i = 0; i < arr.length; i++) { if (arr[i] >= 65 && arr[i] < 91) { // 判断是否是大写字母 strChar += new String(arr[i] + ""); } } strChar += ","; } return strChar; } /*************************************************************************** * Test * * @Name: Pinyin4jUtil.java * @Description: TODO * @author: wang_chian@foxmail.com * @version: Jan 13, 2012 9:49:27 AM * @param args */ public static void main(String[] args) { String str = "重庆"; System.out.println("小写输出:" + getPinyinToLowerCase(str)); System.out.println("大写输出:" + getPinyinToUpperCase(str)); System.out.println("首字母大写输出:" + getPinyinFirstToUpperCase(str)); System.out.println("简拼输出:" + getPinyinJianPin(str)); } }
相关推荐
1、多音字转拼音; 2、64位下的GZIP解压缩; 3、数学公式计算; 4、离线中文OCR识别(见excelhome)。 为了解决这几个个长期困扰我的问题,以及未来经常会遇到的其它问题(例如AES加解密、验证码图片处理、文本编...
该包为java开发第三方包,功能可以获取中文字符串的汉语拼音,包括多音字的处理
19) 汉字转拼音/缩写 20) 两种方式打开拖入文档 (注:请拖到[标题栏]或[状态栏],否则识别为链接; 在[设置]中可配置拖入文档打开方式[插入/新建]) 21) 支持多种格式UTF-8, BIG5, GB2321, Unicode,Unicode...
第三方支持库,由源代码作者按照静态编译技术文档(参见sdk\static_docs)完成自身改造并提供静态库后,可支持静态编译。外部OCX组件和COM组件,不支持静态编译。 此次重大版本升级不影响以前的源代码(.e)和模块...
选中第三方输入法,它就可以在使用用户自己安装的任何一种汉字输入法时,汉字上屏以后读出语音提示。 声音 用来设置有关声音的各种功能。在语音库中选择男声或女声(以后的升级版本提供此项选择,本版本只有男声一...
第三节 定制内容 一、精心定制资源 1、中文菜单文件:精心定制菜单项目,内容更完整、调用更方便; 2、中文帮助文件:方便用户随时查阅,更好地理解和使用本软件; 3、图标及工具栏:集成三种图标方案,并添加...
包含特大字库,能输出二万七千多汉字编码,可输出“鎔”、“祎”、“堃”等不常用的汉字,能够直接用繁体显示形状字根而拆分,输出繁体,而且还支持GBK汉字编外字在自造词中自动生成编码功能。 6、提供5个简易输入:...
中文输入 键盘输入(多达几百种) 以字的发音为基础:全拼、智能ABC 以字的笔型为基础:五笔、二笔 非键盘输入 汉字识别输入法 语音识别输入法 中文输入分类 向下 五笔输入法培训教程全文共53页,当前为第11页。...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
2:FTP下载支持多个站点同时下载一个文件(同时支持断点续传). 3:可以在不下载ZIP.RAR.ISO文件的情况下查看文件里面的目录文件. 4:支持多语言. 5:操作综合其它软件. 6:自定义快捷键. 7:在IE工具栏上加按钮,可以直接...
这种编码输入的优点是无重码 , 而且输入码和内码的转换比较 方便, 但每个汉字的编码都是一串等长的数字 , 很难记忆 拼音码是以汉语读音为基础的 , 由于汉字同音字太多 , 输入重码率很高 , 因此按拼音输入后 还必须...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...
同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...