java中获取中文拼音(全拼)和中文首字母
目录
- 一、引入依赖
- 二、代码
- 三、解释
- 1、创建格式化对象HanyuPinyinOutputFormat
- 2、设置输出结果的大小写格式
- 3、设置声调格式
- 4、进行汉字转拼音操作
- 四、作用
一、引入依赖
<!-- 将中文转换为拼音 -->
<dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version>
</dependency>
二、代码
/*** 获取中文全拼** @param name 需要转换的中文* @return 全拼结果**/
public static String getFullPinyin(String name) {// 创建格式化对象HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();//设置大小写格式outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);//设置声调格式outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 放置输入结果StringBuilder result = new StringBuilder();// 字符数组char[] charArray = name.toCharArray();// 遍历字符for (char c : charArray) {// 中文会被变成全拼,非中文会被直接拼接在结果字符串中if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {String[] pinyinArray = new String[0];try {pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, outputFormat);} catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {badHanyuPinyinOutputFormatCombination.printStackTrace();}if (pinyinArray != null) {result.append(pinyinArray[0]);}} else {result.append(c);}}return result.toString();
}/*** 获取中文首字母** @param name 需要转换的中文* @return 首字母结果**/
public static String getPinyinInitial(String name) {// 创建格式化对象HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();//设置大小写格式outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);//设置声调格式outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 放置输入结果StringBuilder result = new StringBuilder();// 字符数组char[] charArray = name.toCharArray();// 遍历字符for (char c : charArray) {// 中文会被变成拼音首字母,非中文会被直接拼接在结果字符串中if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {String[] pinyinArray = new String[0];try {pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, outputFormat);} catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {badHanyuPinyinOutputFormatCombination.printStackTrace();}if (pinyinArray != null) {result.append(pinyinArray[0].charAt(0));}} else {result.append(c);}}return result.toString();
}
三、解释
1、创建格式化对象HanyuPinyinOutputFormat
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
2、设置输出结果的大小写格式
outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
括号中的参数有两个选择项,分别是:HanyuPinyinCaseType.LOWERCASE
( 转换后以小写方式输出)、HanyuPinyinCaseType.UPPERCASE
(转换后以大写方式输出)
3、设置声调格式
outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
括号中的参数有三个选择项,分别是:HanyuPinyinToneType.WITHOUT_TONE
(无声调表示,例如:liu)、HanyuPinyinToneType.WITH_TONE_NUMBER
(用数字表示声调,例如:liu2)、HanyuPinyinToneType.WITH_TONE_MARK
(用声调符号表示,例如:liú)
如果选择
HanyuPinyinToneType.WITH_TONE_MARK
(用声调符号表示,例如:liú)抓中方式展示,还可以对展示值做进一步的设置,例如:
outputFormat.setVCharType(HanyuPinyinVCharType);
括号中的参数可以有三个选择项,分别是:HanyuPinyinVCharType.WITH_U_UNICODE
(以拼音格式表示,例如:以ü表示)、HanyuPinyinVCharType.WITH_U_AND_COLON
(以U和一个冒号表示该拼音,例如:lu:)、HanyuPinyinVCharType.WITH_V
(以V表示该字符,例如:lv)
4、进行汉字转拼音操作
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, outputFormat);
数组中只有第一个元素有值,所以只用取出下标为0的结果,记得处理抛出的异常
四、作用
上述两个功能在即时通讯产品中应用比较广泛,比如微信就是一个很好的例子,你可以尝试使用全拼或者首字母组合去微信搜索框中搜索,你会发现你能找到想要的结果,我猜测在用户注册的时候,微信会将用户名称、用户名称全拼、用户名称首字母拼写都存入了数据库或者搜索引擎中
java中获取中文拼音(全拼)和中文首字母相关推荐
- npm包-js-pinyin获取中文拼音,实现按26个首字母展示城市
npm包-js-pinyin获取中文拼音,实现按26个首字母展示城市 npm安装js-pinyin vue实现代码 城市展示效果图 你越是认真生活,你的生活就会越美好--弗兰克·劳埃德·莱特 < ...
- java 拼音转汉字_用Java转化汉字为拼音全拼
/** * @(#)CnToSpell.java * 版权声明 Easydozer 版权所有 违者必究 * * 修订记录: * 1)更改者:Easydozer * 时 间:2004-10-20 * ...
- 使用SAE KVDB快速实现 支持中文/拼音/全拼/的AutoComplete
jQueryUI的AutoComplete是一个好东西,但是无奈不支持中文,有好几次想在产品中添加这个功能但都因为用PHP实现一个中文 还要拼音和全拼的索引太过麻烦而最终放弃. 在开发这个火车票交易项 ...
- excel中汉字转拼音全拼和简拼
一.汉字转全拼 1.启动Excel 2003(其它版本请仿照操作),打开相应的工作表: 2.执行"工具→宏→Visual Basic编辑器"命令(或者直接按"Alt+F1 ...
- java获取汉字拼音_Java获取汉字对应的拼音(全拼或首字母)
Java 根据汉语字符串获得对应的拼音字符串或者拼音首字母字符串等操作,需要添加jar包: 代码实现: import java.util.regex.Matcher; import java.util ...
- java全拼_Java获取汉字对应的拼音(全拼或首字母)
java 根据汉语字符串获得对应的拼音字符串或者拼音首字母字符串等操作,需要添加jar包: 引入包 代码实现: import java.util.regex.matcher; import java. ...
- java将汉字转成拼音首字母大写字母_java 根据汉字生成拼音全拼或拼音首字母的示例...
1.情景展示 java 根据中文生成对应的拼音 2.准备工作 所需jar包:pinyin4j-2.5.0.jar 3.解决方案 导包 import net.sourceforge.pinyin4j.P ...
- react根据中文获取拼音_vue 获取汉字的全拼、简拼、首拼
1.封装公共方法,获取汉字的全拼.简拼.首拼 export const Pinyin = { _JMcode:{ "-":"", "-":& ...
- java实现大段中文转拼音首字母、拼音全拼
话不多说,上代码: package cn.jiangshuai.personManage;import java.util.Scanner;import net.sourceforge.pinyin4 ...
最新文章
- vs2008与IIS 7.0使用在vista上时出现的问题及解决方法(Internet Explorer 无法显示该页面)(VS2008: IE Cannot Display Web Page)...
- python计算文件md5值_用python 正确计算大文件md5 值
- 大型网站技术架构(2):架构要素和高性能架构
- java 反序列化 ysoserial exploit/JRMPListener 原理剖析
- Java的内存分配策略有哪些_Java的内存分配策略
- Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现
- 费尔马小定理素数java_利用费马小定理判断素数
- JAVA 搭建基于SPRINGBOOT的SSM(SPRING + SPRINGMVC + MYBATIS)的MAVEN项目
- 代码投毒、删库跑路,开源生态链安全该如何保证?
- Go 开发关键技术指南 | 带着服务器编程金刚经走进 2020 年
- rabbitm rpm傻瓜式安装
- 计算机无法自动搜索更新驱动程序,Win10怎么设置自动搜索更新驱动软件
- java 中Shallow Heap与Retained Heap的区别
- 写接口给京东使用的过程中学到的学习方法
- 鸿蒙坐骑九彩祥云,封神演义五大神兽坐骑排名,第一名太出人意料了!
- EMV规范(七)——持卡人验证(CVM)一
- python ocr文字识别竖排繁体_繁体文字识别 ABBYY 与 千百OCR 使用比较
- WordCount 案例
- 10. Kubernetes的日志与监控
- 求后缀表达式的简便方法
热门文章
- Unhandled JS Exception: Unexpected identifier ‘_classCallCheck‘. import call expects exactly one arg
- python中内置数学函数详解和实例应用之三角函数_初级阶段(二)
- Python 之 pygame 学习(入门知识)
- 主动学习(Active learning)简介
- android studio try again,完美解决Android Studio在gradle上的各种问题
- RT_Thread自问自答
- (转)给想立志入行网络或已经初入行的朋友的建议
- c语言运算符 amp 的意思,C语言运算符是什么意思
- web前端开发基础知识整理以及前端视频教程
- 达奇机器人不能用电脑编程吗_奇幻工房智能编程机器人达奇dash编程容易学吗?适合几岁小朋友玩?...