Pinyin4jUtil 将汉字转换成拼音工具类
2017-11-17 00:00
465 查看
中文转换英文,首先引入pom文件
工具类:
<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> </dependency>
工具类:
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: zhukai * @Description: 将姓名汉字转换成拼音 * @Date: create in 2017/8/1. */ public class Pinyin4jUtil { // 名字长度 private static int NAME_LENGTH = 3; // 将汉字转换为全拼 public static String getPingYin(String src) { char[] name = src.toCharArray(); String[] newName = new String[name.length]; HanyuPinyinOutputFormat pyFormat = new HanyuPinyinOutputFormat(); pyFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); pyFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); pyFormat.setVCharType(HanyuPinyinVCharType.WITH_V); String account = ""; int length = name.length; try { // 名字大于等于3个字的时候,姓取全称,名取首字母。 if(length>=NAME_LENGTH){ for (int i = 0; i < length; i++) { // 截取姓 if(i==0){ // 判断是否为汉字字符 if (Character.toString(name[i]).matches("[\\u4E00-\\u9FA5]+")) { newName = PinyinHelper.toHanyuPinyinStringArray(name[i], pyFormat); account += newName[0]; } else account += Character.toString(name[i]); }else{ account += getPinYinHeadChar(Character.toString(name[i])); } } }else{ // 只有2个字的名字,账号是名字的拼音全称 for (int i = 0; i < length; i++) { // 判断是否为汉字字符 if (Character.toString(name[i]).matches("[\\u4E00-\\u9FA5]+")) { newName = PinyinHelper.toHanyuPinyinStringArray(name[i], pyFormat); account += newName[0]; } else account += Character.toString(name[i]); } } return account; } catch (BadHanyuPinyinOutputFormatCombination e1) { e1.printStackTrace(); } return account; } // 返回中文的首字母 public static String getPinYinHeadChar(String str) { String convert = ""; for (int j = 0; j < str.length(); j++) { char word = str.charAt(j); String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word); if (pinyinArray != null) { convert += pinyinArray[0].charAt(0); } else { convert += word; } } return convert; } }
相关文章推荐
- Android 关于汉字转拼音的工具类Pinyin4jUtil 的使用说明
- 拼音工具类,能将汉字转换成拼音的首字母
- 汉字转换为拼音字头的工具类与原理
- 汉字文章转换拼音的好工具 pinyinConvert.v20120709
- Pinyin 拼音转换工具类
- 汉字转换拼音工具类
- 汉字文章转换拼音的好工具 pinyinConvert.v20120709
- java汉字转换拼音工具类
- Pinyin4jUtil 汉字转拼音
- pinyin4j汉字转换拼音的工具类
- 终结者:借助pinyin4j相关jar包将汉字转换为全拼的拼音
- C#实现汉字转换为拼音缩写的代码
- 汉字转拼音工具类
- 汉字 转换成 拼音 - PHP 函数 by 绿色学院 - Green Institute
- 汉字转换拼音开源项目
- C# 汉字转换成拼音
- Java实现汉字转换为拼音
- C# 汉字转换成拼音
- php将汉字转换为拼音和得到词语首字母