pinyin4j 拼音中文工具类
来源:互联网 发布:大型网站技术 Java中间 编辑:程序博客网 时间:2024/06/08 06:15
需要添加pinyin4j-2.5.0.jar
import com.acmenxd.logger.Logger;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;/** * @author AcmenXD * @version v1.0 * @github https://github.com/AcmenXD * @date 2016/12/15 16:10 * @detail 拼音工具类 */public class PinYinUtils { /** * 将inStr中的中文转化为拼音,其他字符保持不变 * * 中文转换的拼音为 小写字母 */ public static String parsePinyin(String inStr) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.LOWERCASE); format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); format.setVCharType(HanyuPinyinVCharType.WITH_V); char[] input = inStr.trim().toCharArray(); StringBuilder output = new StringBuilder(); try { for (int i = 0; i < input.length; i++) { if (Character.toString(input[i]).matches( "[\\u4E00-\\u9FA5]+")) { String[] temp = PinyinHelper.toHanyuPinyinStringArray( input[i], format); if (temp != null && temp.length > 0) { output.append(temp[0]); } else { Logger.e("parsePinyin ? " + inStr); } } else output.append(Character.toString(input[i])); } } catch (BadHanyuPinyinOutputFormatCombination pE) { Logger.e(pE); } return output.toString(); } /** * 将inStr的中文字符,转换为中文拼音的首字母,其他字符保持不变 * * 中文转换的首字母为 大写字母 */ public static String parsePinyinToFirst(String inStr) { String pinyinName = ""; char[] nameChar = inStr.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { pinyinName += PinyinHelper.toHanyuPinyinStringArray( nameChar[i], defaultFormat)[0].charAt(0); } catch (BadHanyuPinyinOutputFormatCombination pE) { Logger.e(pE); } } else { pinyinName += nameChar[i]; } } return pinyinName; } /** * 判断字符是否是中文 */ public static boolean isChinese(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) { return true; } return false; }}
0 0
- pinyin4j 拼音中文工具类
- Pinyin4j获取中文拼音
- pinyin4j汉字转换拼音的工具类
- pinyin4j将中文转成拼音
- 中文转拼音Pinyin4j简介
- 使用pinyin4j库把中文转成拼音
- java的中文转拼音组件---pinyin4j
- java 中文转拼音之pinyin4j
- Pinyin4j.jar介绍中文转拼音
- 利用Pinyin4j把中文转换为拼音
- 中文转义英文拼音功能(pinyin4j)
- 使用pinyin4j完成中文拼音转换
- 【框架】pinyin4j中文汉字转化为拼音
- 中文转拼音,pinyin4j实用示例
- 汉字转拼音开源工具-pinyin4j
- 中文转拼音 工具类
- pinyin4j:获取中文串拼音或拼音首字母
- pinyin4j工具类
- tesseract-ocr编译和帮助文档
- 揭开linux内核中container_of的神秘面纱
- inux下jdk安装 配置完成出错
- 洛谷 P2822 组合数问题
- DB: mysqldump远程备份Mysql数据库并压缩保存
- pinyin4j 拼音中文工具类
- whereis命令
- “我只能冒险”:每个IT人心中都有一个梵·高
- linux网络编程:广播编程
- Linux常用命令学习
- 二叉树的最小深度-LintCode
- PS需要用到数位板吗,PS中怎么设置和运用手绘板
- 分数
- 怎么使用crontab?crontab常用指令