Java汉字转汉语拼音工具类
Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包,我使用的是Gradle项目,在build.gradle中引入依赖
// https://mvnrepository.com/artifact/com.belerweb/pinyin4jcompile group: 'com.belerweb', name: 'pinyin4j', version: '2.5.0'
如果是Maven项目,则需要在pom.xml中引入依赖
<dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version>
</dependency>
工具类:
package com.lxy.tools;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 HanyupinyinUtil {/*** 将文字转为汉语拼音,全拼(复兴路=>fuxinglu)** @param ChineseLanguage 要转换的文字* @return String*/public static String getPinyinString(String ChineseLanguage) {char[] cl_chars = ChineseLanguage.trim().toCharArray();String hanyupinyin = "";HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部小写defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);try {for (int i = 0; i < cl_chars.length; i++) {if (String.valueOf(cl_chars[i]).matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0];} else {// 如果字符不是中文,则不转换hanyupinyin += cl_chars[i];}}} catch (BadHanyuPinyinOutputFormatCombination e) {System.out.println("字符不能转成汉语拼音");}return hanyupinyin;}/*** 取每个汉字的第一个字符,大写(复兴路=>FXL)** @param ChineseLanguage 要转换的文字* @return String*/public static String getFirstLettersUp(String ChineseLanguage) {return getFirstLetters(ChineseLanguage, HanyuPinyinCaseType.UPPERCASE);}/*** 取每个汉字的第一个字符,小写(复兴路=>fxl)** @param ChineseLanguage 要转换的文字* @return String*/public static String getFirstLettersLo(String ChineseLanguage) {return getFirstLetters(ChineseLanguage, HanyuPinyinCaseType.LOWERCASE);}/*** 将文字转为汉语拼音首字母,大写或小写需要自己指定(用上面的就行了,这个就别用了)** @param ChineseLanguage 要转换的文字* @param caseType UPPERCASE->大写,LOWERCASE->小写* @return String*/public static String getFirstLetters(String ChineseLanguage, HanyuPinyinCaseType caseType) {char[] cl_chars = ChineseLanguage.trim().toCharArray();String hanyupinyin = "";HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();defaultFormat.setCaseType(caseType);// 输出拼音全部大写defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调hanyupinyin = getHanYuPinYinString(cl_chars, hanyupinyin, defaultFormat);return hanyupinyin;}/*** 取第一个汉字的第一个字符(复兴路=>F)** @param ChineseLanguage 要转换的文字* @return String*/public static String getFirstLetter(String ChineseLanguage) {char[] cl_chars = ChineseLanguage.trim().toCharArray();String hanyupinyin = "";HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 输出拼音全部大写defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调try {String str = String.valueOf(cl_chars[0]);if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母hanyupinyin = PinyinHelper.toHanyuPinyinStringArray(cl_chars[0], defaultFormat)[0].substring(0, 1);;} else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字hanyupinyin += cl_chars[0];} else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母hanyupinyin += cl_chars[0];} else {// 否则不转换}} catch (BadHanyuPinyinOutputFormatCombination e) {System.out.println("字符不能转成汉语拼音");}return hanyupinyin;}//获取汉语拼音private static String getHanYuPinYinString(char[] cl_chars, String hanyupinyin, HanyuPinyinOutputFormat defaultFormat) {try {for (int i = 0; i < cl_chars.length; i++) {String str = String.valueOf(cl_chars[i]);if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0].substring(0, 1);} else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字hanyupinyin += cl_chars[i];} else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母hanyupinyin += cl_chars[i];} else {// 否则不转换hanyupinyin += cl_chars[i];//如果是标点符号的话,带着}}} catch (BadHanyuPinyinOutputFormatCombination e) {System.out.println("字符不能转成汉语拼音");}return hanyupinyin;}public static void main(String[] args) {System.out.println("getPinyinString===============" + getPinyinString("复兴路"));System.out.println("getFirstLettersUp===============" + getFirstLettersUp("复兴路"));System.out.println("getFirstLettersLo===============" + getFirstLettersLo("复兴路"));System.out.println("getFirstLetter===============" + getFirstLetter("复兴路"));}
}
使用"复兴路"测试的结果
getPinyinString===============fuxinglu
getFirstLettersUp===============FXL
getFirstLettersLo===============fxl
getFirstLetter===============FProcess finished with exit code 0
Java汉字转汉语拼音工具类相关推荐
- java汉字转拼音工具类源代码
原文:java汉字转拼音工具类源代码 源代码下载地址:http://www.zuidaima.com/share/1550463387880448.htm 汉字转拼音 Pinyin pinyin = ...
- Java汉字转拼音工具类(支持首字母和全拼)
工具类产生是因为个人业务需求需要根据中文汉字排序,而博主又对网上回答不满意,所以才根据相关资料写了该工具类,写入博客 以备不时之需.直接上代码: Java汉字转成汉语拼音工具类,需要用到pinyin4 ...
- Java汉字转换拼音工具类
1. 使用pinyin4j 1.1 引入相关maven依赖 <dependency><groupId>com.belerweb</groupId><artif ...
- Java汉字转为拼音工具类
依赖文件 <!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j --><dependency><gr ...
- Java——将汉字转为汉语拼音工具类
直奔主题! 首先导入pinyin4j的依赖 <dependency><groupId>org.clojars.cbilson</groupId><artifa ...
- java 拼音 jar_Java实现的汉语拼音工具类完整实例
本文实例讲述了Java实现的汉语拼音工具类.分享给大家供大家参考,具体如下: package test; import net.sourceforge.pinyin4j.PinyinHelper; i ...
- java 汉字转拼音原理_Java汉字转成汉语拼音工具类
Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...
- java项目常用的工具类
前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...
- 汉字转拼音(工具类)
2019独角兽企业重金招聘Python工程师标准>>> package com.qst.tesc.course.web.rest.util; import java.io.Unsup ...
最新文章
- ubunntu安装php7.0_在 Ubuntu/Debian 下安装 PHP7.3 教程
- 2020暑期实习后台开发字节跳动笔试
- activity切换效果
- Oracle 数据库版本和位数sql语句查看方法
- Java异常(一) Java异常简介及其架构
- 从零开始入门 K8s | GPU 管理和 Device Plugin 工作机制
- Missing URI template variable 'XXXX' for method parameter of type String
- 机器学习经典算法笔记——线性回归
- 基于深度学习的个性化新闻推荐.pdf(附下载链接)
- 洛谷P1984 SDOI2008烧水问题
- JAVA中的位运算符
- How to add svn:externals in windows using TortoiseSVN
- 树莓派安装python3.5_树莓派升级python的具体步骤
- C语言——指针篇(三)数组的下标引用和指针访问
- 统计一句话中每个字母出现的次数
- 《MySQL必知必会》学习笔记——第八章(用通配符过滤)
- idea官网下载地址
- f分布表完整图a=0.01_第7章 分布分析
- oa项目经验描述_(完整版)简历中的项目经验范文
- Everypixel –图库图片设计师的搜索引擎
热门文章
- ava_212_反射机制_动态操作_构造器_方法_属性_练习
- Cypress系列(50)- wrap() 命令详解
- Ubuntu16.04开机后黑屏无法进入系统登陆界面
- 我也来分享一个魔兽显血改键工具
- Hystrix之四种触发fallback情况
- Spring Cloud Ribbon 全解 (4) - 基本组件实现源码(2)
- 直播怎么录屏,妙招分享,亲测好用!
- MySQL 开启大页内存
- 利用Hexo+github搭建博客,零成本、无需域名、服务器
- Android Studio 模拟器打开dev setting 修改IP,重新Reload