Java拼音转换一例
工作中有时碰到将中文名转换成首字母拼音书写。以前工作电脑故障,资料尽失,这里补充回一点,
参考网站: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拼音转换一例相关推荐
- php转换java工具_6款程序员必备的开源中文汉字拼音转换及处理工具 (PHP Java .net)...
码云项目推荐 1.项目名称: 中文转拼音库 pinyin4j 项目简介:Pinyin4j 是一个流行的 Java 库,支持中文字符和拼音之间的转换.拼音输出格式可以定制. 2.项目名称:汉字/拼音转换 ...
- java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...
pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...
- java分词支持拼音_java 支持分词的高性能拼音转换工具,速度是 pinyin4j
pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...
- java 中文分词转拼音_java 支持分词的高性能拼音转换工具, 速度是 pinyin4j 的两倍...
java 支持分词的高性能拼音转换工具, 速度是 pinyin4j 的两倍 pinyin https://github.com/houbb/pinyin 是 java 实现的高性能中文拼音转换工具. ...
- 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可以 ...
- java 汉字转换拼音
java 汉字转换拼音 maven依赖 <dependency><groupId>com.belerweb</groupId><artifactId>p ...
- java 分词器耗时 性能_java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍...
pinyin pinyin 是 java 实现的高性能中文拼音转换工具. 创作目的 想为 java 设计一款便捷易用的拼音工具. 特性 极简的 api 设计 支持转换长文本 支持多音字 支持多种拼音标 ...
- Java汉字转换拼音工具类
1. 使用pinyin4j 1.1 引入相关maven依赖 <dependency><groupId>com.belerweb</groupId><artif ...
- Java中文拼音转换
添加pom.xml依赖 <!-- 中文拼音转换 --> <dependency><groupId>com.belerweb</groupId><a ...
最新文章
- 瑞星播报:3月8日需警惕“灰鸽子变种AWM”病毒
- gdb调试fork多进程
- java inputstream api_Java 读取/转换 InputStream 为字符串
- 两种解决IE6不支持固定定位的方法
- Linux守护进程列表
- jira7.3.6添加导出excel的按钮
- CPC客户端打开报错:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
- 芬兰开放「线上 AI 速成班」,全球网民均可注册【智能快讯】
- word计算机相乘公式,怎么使用Word复制乘积公式
- 【CSS3】Advanced1:Rounded Corners
- JS 时间函数实现9宫格抽奖
- 锂电池】关于4.2V锂电池充电IC的一些记录
- springboot基于Java的多元化智能选课系统毕业设计源码040909
- html 如何把文字和图片放到一行,DIV+CSS图片和文字如何显示同一行
- 15款js编辑器大全 收藏
- codeforces 848E. Days of Floral Colours
- python水位传感器输出水位_投入式水位传感器、投入式液位传感器的应用方法
- web扫描姿势——xray被动扫描
- 零基础小白学习UI设计 UI的学习路线是什么
- Android解决AS工具View不显示布局的问题
热门文章
- java 是静态语言还是动态_java是动态语言还是静态语言?,
- 嵌入式作业STM32定时器实现串口通信及LED灯闪烁
- Dynamo_图纸序号简单调整
- 利用Dynamo自动创建Revit楼板
- linux-rabbitmq集群部署及springboot结合
- 巨坑!监听浏览器窗口关闭onbeforeunload不起作用(脱坑了啊!!)
- CH3-Android常见界面控件
- Ubuntu安装QQ 微信等手机应用
- android 投影 windows,夏昆冈作品 - 将Android手机投影到Windows 10 PC [Soomal]
- 开了batch_norm,训练集acc很高,而测试集acc很低怎么解决