java pinyin4j 官网_Java中文转汉语拼音类库pinyin4j使用示例
pinyin4j的java开源类库,提供中文转汉语拼音(并且支持多音字)
pinyin4j官方网址:http://pinyin4j.sourceforge.net/
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;
public class pinyin4j {
/**
* 字符串集合转换字符串(逗号分隔)
* @author wyh
* @param stringSet
* @return
*/
public static String makeStringByStringSet(Set 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().toLowerCase();
}
/**
* 获取拼音集合
* @author wyh
* @param src
* @return Set
*/
public static Set getPinyin(String src){
if(src!=null && !src.trim().equalsIgnoreCase("")){
char[] srcChar ;
srcChar=src.toCharArray();
//汉语拼音格式输出类
HanyuPinyinOutputFormat hanYuPinOutputFormat = new HanyuPinyinOutputFormat();
//输出设置,大小写,音标方式等
hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
hanYuPinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE)
hanYuPinOutputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
String[][] temp = new String[src.length()][];
for(int i=0;i
char c = srcChar[i];
//是中文或者a-z或者A-Z转换拼音(我的需求,是保留中文或者a-z或者A-Z)
if(String.valueOf(c).matches("[\\u4E00-\\u9FA5]+")){
try{
temp[i] = PinyinHelper.toHanyuPinyinStringArray(srcChar[i], hanYuPinOutputFormat);
}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 pinyinSet = new HashSet();
for(int i=0;i
pinyinSet.add(pingyinArray[i]);
}
return pinyinSet;
}
return null;
}
/**
* 递归
* @author wyh
* @param strJaggedArray
* @return
*/
public static String[] Exchange(String[][] strJaggedArray){
String[][] temp = DoExchange(strJaggedArray);
return temp[0];
}
/**
* 递归
* @author wyh
* @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
for(int j=0;j
temp[Index] = strJaggedArray[0][i] + strJaggedArray[1][j];
Index ++;
}
}
String[][] newArray = new String[len-1][];
for(int i=2;i
newArray[i-1] = strJaggedArray[i];
}
newArray[0] = temp;
return DoExchange(newArray);
}else{
return strJaggedArray;
}
}
/**
* @param args
*/
public static void main(String[] args) {
String str = "单田芳";
System.out.println(makeStringByStringSet(getPinyin(str)));
}
}
java pinyin4j 官网_Java中文转汉语拼音类库pinyin4j使用示例相关推荐
- java applet 官网_java applet
java applet[编辑] 概述 JavaApplet就是用Java语言编写的小应用程序,可以直接嵌入到网页中,并能够产生特殊的效果. 介绍 Java Applet就是用Java语言编写的一些小应 ...
- java dozer 官网,Dozer数据对象转换神器
首先,为什么要进行数据转换? 在一个分层的体系结构中,经常会使用DTO.PO.VO等封装数据,封装数据到特定的数据对象中,然而在很多情况下,某层内部的数据是不允许传递到其它层,不允许对外暴露的,特别是 ...
- Java开发官网地址大全
1.Java开发官网 Mybatis Mybatis中文网 https://mybatis.net.cn/ mybatis pagehelper 分页插件 MyBatis 分页插件 PageHelpe ...
- java runtime environment 官网_Java Runtime Environment SE Development Kit
Java 2平台标准版(J2SE)软件是当今开发和发布急需的企业级应用的首选方案.1.4版在Java的跨平台性和高安全性的基础上,增加了很多新的特性和功能,提供了更高的性能.可规划性.稳定性和服务能力 ...
- 【java基础】java的官网和jdk安装和下载
本篇文章主要讲解java初级知识,java的jdk安装和下载. 作者:任聪聪 java 官网介绍 java只有一个唯一官网,下载jdk千万不要通过资源站下载,很有可能会存在隐患. 官网地址:https ...
- Docker的官网在线--中文教程
1.官网界面:https://www.docker.com/tryit/ In this 10-minute tutorial, see how Docker works first-hand: Yo ...
- java dozer 官网_Dozer 使用小结
这篇文章是本人在阅读Dozer官方文档(5.5.1版本,官网已经一年多没更新了)的过程中,整理下来我认为比较基础的应用场景. 本文中提到的例子应该能覆盖JavaBean映射的大部分场景,希望对你有所帮 ...
- java企业官网源码 自适应响应式 freemarker 静态引擎 SSM 框架
前台:支持(5+3[时尚单页风格])八套模版,可以在后台切换 业务模块(首页管理) 1. 网站信息:维护网站基本信息,比如标题.描述.关键词.联系方式.地址等 2. 业务说明:网站首页文字业务 ...
- java pinyin4j 官网_Pinyin4j简单使用教程
Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,拼音输出格式可以定制,在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,这时候Pinyin4j就可以派上用场 有自己私服的可以 ...
最新文章
- 计算机视觉分析:传统视觉VS深度学习
- crontab shell 每5秒执行_centos 定时任务按秒执行crontab
- HDU 1257 最少拦截系统
- rabbitmq常用配置
- (*长期更新)软考网络工程师学习笔记——Section 5 数据链路层
- 错误: 找不到或无法加载主类 org.apache.flume.tools.GetJavaProperty
- 《CCNA无线640-722认证考试指南》——5.4节其他无线拓扑
- 他曾经复读才考上三本,如今让华为开出 201 万年薪(其实还拒绝了 360 万 offer)...
- pandas nat_EDA神器pandas-profiling万岁?
- 安卓游戏广告加速插件_大杀器一款超级良心的免费游戏加速器,PC、安卓、iOS都可使用...
- linux vim 安装失败,ubuntu安装vim失败怎么办
- 重新认识JavaScript面向对象: 从ES5到ES6
- 多线程并发编程知识点汇总
- 看我如何拿下BC站的服务器
- 南充一中2021成绩查询高考,2021年南充一中升学率高不高?
- 怎么在html中使logo,如何用CSS3设计腾讯QQ LOGO?
- 空间权重矩阵与相关性检验(Stata)
- Java集成Sap/Erp产生的sapjco包重命名/rename问题及解决方案
- arttemplate入门
- Day 02- Vue3 技术_分析工程结构
热门文章
- Element 组件之 右键鼠标 自定义菜单
- ​LeetCode刷题实战517:超级洗衣机
- 可上网Linux,可以上网了
- 深度学习笔记之关于常用模型或者方法
- lua for windows学习教程-1
- 解决api-ms-win-crt-runtimel1-1-0.dll缺失的方法 api-ms-win-crt-runtime-l1-1-0.dll是电脑系统重要组件,如果缺少会导致很多程序无法运行,
- [C#问题--WebBrowser继续追踪]WebBrowser在Form程序中使用的感想2
- HP Unix 命令整理
- 【计算机网络---自顶向下方法笔记1】计算机网络和因特网概述
- python 腾讯视频签到_云函数实现腾讯视频vip自动签到