工作中有时碰到将中文名转换成首字母拼音书写。以前工作电脑故障,资料尽失,这里补充回一点,

参考网站:http://pinyin4j.sourceforge.net/,当前版本: pinyin4j 2.5.0

关键是知道有这么个开源jar包可以使用,没有什么特别的,使用起来很简单,代码中使用一点小算法。

package com.pinying.demo;import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;import net.sourceforge.pinyin4j.PinyinHelper;/*** Chinese character convert to Pinyin(include tongying character combine), return String Array* Description: Previously documented, computer failure, all data is lost, now slowly accumulated* @author zhaoxiaobo Dennis Email: zxbxiaobo@sina.com* @createdTime:2012-11-27*/
public class PinyinDemo {private static Set<String> set = new HashSet<String>(0);private static int NUMNER = 0;private static String CHINESE_CHAR = "给予你长久的力量";//test data
//    private static String CHINESE_CHAR = "黄长恩";//test data
//    private static String CHINESE_CHAR = "赵晓波";//test data
//    private static String CHINESE_CHAR = "胡胜利";//test data
//    private static String CHINESE_CHAR = "张三丰";//test datastatic {NUMNER = CHINESE_CHAR.length();}public static void main(String[] args) {
//        List<List<String>> lists = new ArrayList<List<String>>(0);
//        List<String> list = new ArrayList<String>(0);
//        list.add("a");
//        list.add("b");
//        lists.add(list);
//        List<String> list1 = new ArrayList<String>(0);
//        list1.add("c");
//        list1.add("d");
//        lists.add(list1);
//        List<String> list2 = new ArrayList<String>(0);
//        list2.add("e");
//        list2.add("f");
//        lists.add(list2);
//        List<String> list3 = new ArrayList<String>(0);
//        list3.add("g");
//        list3.add("h");
//        lists.add(list3);generateData(getFirstCharFromString(CHINESE_CHAR), new ArrayList<String>(0));Iterator<String> it = set.iterator();while (it.hasNext()) {System.out.println(it.next());}}/***  获取一段中文字符拼音首字母的(包括多音字的组合)数组* getFirstCharFromString* @param str* @return* @return the List<List<String>>*/public static List<List<String>> getFirstCharFromString(String str) {List<List<String>> rets = new ArrayList<List<String>>(0);if (null != str && !"".equals(str.trim())) {int len = str.trim().length();char chr = ' ';for (int i = 0; i < len; i++) {Set<String> set = new HashSet<String>(0);chr = str.charAt(i);if (0x4E00 <= chr && chr <= 0x9FA5) {String[] arr = PinyinHelper.toHanyuPinyinStringArray(chr);for (String string : arr) {set.add(string.toUpperCase().charAt(0) + "");}} else {set.add(chr + "");}List<String> list = new ArrayList<String>(0);Iterator<String> it = set.iterator();while (it.hasNext()) {list.add(it.next());}rets.add(list);}} else {System.out.println("null value ....");}return rets;}/***  生成最终的数组组合数据根据排列组合算法* generateData* @param source* @param target* @return the void*/public static void generateData(List<List<String>> source, List<String> target) {StringBuilder sb = new StringBuilder();if (target.size() == NUMNER) {for (String string : target) {sb.append(string);}set.add(sb.toString());return;}//{{'a','b'},{'c','d'},{'e','f'}}for (List<String> list : source) {List<List<String>> newSource = new ArrayList<List<String>>(source);List<String> newTarget = new ArrayList<String>(target);newSource.remove(list);for (String str : list) {newTarget.add(str);generateData(newSource, newTarget);newTarget.remove(str);}break;}}
}

Java拼音转换一例相关推荐

  1. php转换java工具_6款程序员必备的开源中文汉字拼音转换及处理工具 (PHP Java .net)...

    码云项目推荐 1.项目名称: 中文转拼音库 pinyin4j 项目简介:Pinyin4j 是一个流行的 Java 库,支持中文字符和拼音之间的转换.拼音输出格式可以定制. 2.项目名称:汉字/拼音转换 ...

  2. java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...

    pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...

  3. java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j

    pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...

  4. java 中文分词转拼音_java 支持分词的高性能拼音转换工具, 速度是 pinyin4j 的两倍...

    java 支持分词的高性能拼音转换工具, 速度是 pinyin4j 的两倍 pinyin https://github.com/houbb/pinyin 是 java 实现的高性能中文拼音转换工具. ...

  5. java中文拼音转换(maven)

    java中文拼音转换(maven) 效果: 学习JAVA可以找到一份好的工作:xué xí J A V A kĕ yĭ zhăo dào yī fèn hăo de gōng zuò 学习JAVA可以 ...

  6. java 汉字转换拼音

    java 汉字转换拼音 maven依赖 <dependency><groupId>com.belerweb</groupId><artifactId>p ...

  7. java 分词器耗时 性能_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...

    pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...

  8. Java汉字转换拼音工具类

    1. 使用pinyin4j 1.1 引入相关maven依赖 <dependency><groupId>com.belerweb</groupId><artif ...

  9. Java中文拼音转换

    添加pom.xml依赖 <!-- 中文拼音转换 --> <dependency><groupId>com.belerweb</groupId><a ...

最新文章

  1. 瑞星播报:3月8日需警惕“灰鸽子变种AWM”病毒
  2. gdb调试fork多进程
  3. java inputstream api_Java 读取/转换 InputStream 为字符串
  4. 两种解决IE6不支持固定定位的方法
  5. Linux守护进程列表
  6. jira7.3.6添加导出excel的按钮
  7. CPC客户端打开报错:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
  8. 芬兰开放「线上 AI 速成班」,全球网民均可注册【智能快讯】
  9. word计算机相乘公式,怎么使用Word复制乘积公式
  10. 【CSS3】Advanced1:Rounded Corners
  11. JS 时间函数实现9宫格抽奖
  12. 锂电池】关于4.2V锂电池充电IC的一些记录
  13. springboot基于Java的多元化智能选课系统毕业设计源码040909
  14. html 如何把文字和图片放到一行,DIV+CSS图片和文字如何显示同一行
  15. 15款js编辑器大全 收藏
  16. codeforces 848E. Days of Floral Colours
  17. python水位传感器输出水位_投入式水位传感器、投入式液位传感器的应用方法
  18. web扫描姿势——xray被动扫描
  19. 零基础小白学习UI设计 UI的学习路线是什么
  20. Android解决AS工具View不显示布局的问题

热门文章

  1. java 是静态语言还是动态_java是动态语言还是静态语言?,
  2. 嵌入式作业STM32定时器实现串口通信及LED灯闪烁
  3. Dynamo_图纸序号简单调整
  4. 利用Dynamo自动创建Revit楼板
  5. linux-rabbitmq集群部署及springboot结合
  6. 巨坑!监听浏览器窗口关闭onbeforeunload不起作用(脱坑了啊!!)
  7. CH3-Android常见界面控件
  8. Ubuntu安装QQ 微信等手机应用
  9. android 投影 windows,夏昆冈作品 - 将Android手机投影到Windows 10 PC [Soomal]
  10. 开了batch_norm,训练集acc很高,而测试集acc很低怎么解决