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汉字转汉语拼音工具类相关推荐

  1. java汉字转拼音工具类源代码

    原文:java汉字转拼音工具类源代码 源代码下载地址:http://www.zuidaima.com/share/1550463387880448.htm 汉字转拼音 Pinyin pinyin = ...

  2. Java汉字转拼音工具类(支持首字母和全拼)

    工具类产生是因为个人业务需求需要根据中文汉字排序,而博主又对网上回答不满意,所以才根据相关资料写了该工具类,写入博客 以备不时之需.直接上代码: Java汉字转成汉语拼音工具类,需要用到pinyin4 ...

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

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

  4. Java汉字转为拼音工具类

    依赖文件 <!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j --><dependency><gr ...

  5. Java——将汉字转为汉语拼音工具类

    直奔主题! 首先导入pinyin4j的依赖 <dependency><groupId>org.clojars.cbilson</groupId><artifa ...

  6. java 拼音 jar_Java实现的汉语拼音工具类完整实例

    本文实例讲述了Java实现的汉语拼音工具类.分享给大家供大家参考,具体如下: package test; import net.sourceforge.pinyin4j.PinyinHelper; i ...

  7. java 汉字转拼音原理_Java汉字转成汉语拼音工具类

    Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...

  8. java项目常用的工具类

    前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...

  9. 汉字转拼音(工具类)

    2019独角兽企业重金招聘Python工程师标准>>> package com.qst.tesc.course.web.rest.util; import java.io.Unsup ...

最新文章

  1. ubunntu安装php7.0_在 Ubuntu/Debian 下安装 PHP7.3 教程
  2. 2020暑期实习后台开发字节跳动笔试
  3. activity切换效果
  4. Oracle 数据库版本和位数sql语句查看方法
  5. Java异常(一) Java异常简介及其架构
  6. 从零开始入门 K8s | GPU 管理和 Device Plugin 工作机制
  7. Missing URI template variable 'XXXX' for method parameter of type String
  8. 机器学习经典算法笔记——线性回归
  9. 基于深度学习的个性化新闻推荐.pdf(附下载链接)
  10. 洛谷P1984 SDOI2008烧水问题
  11. JAVA中的位运算符
  12. How to add svn:externals in windows using TortoiseSVN
  13. 树莓派安装python3.5_树莓派升级python的具体步骤
  14. C语言——指针篇(三)数组的下标引用和指针访问
  15. 统计一句话中每个字母出现的次数
  16. 《MySQL必知必会》学习笔记——第八章(用通配符过滤)
  17. idea官网下载地址
  18. f分布表完整图a=0.01_第7章 分布分析
  19. oa项目经验描述_(完整版)简历中的项目经验范文
  20. Everypixel –图库图片设计师的搜索引擎

热门文章

  1. ava_212_反射机制_动态操作_构造器_方法_属性_练习
  2. Cypress系列(50)- wrap() 命令详解
  3. Ubuntu16.04开机后黑屏无法进入系统登陆界面
  4. 我也来分享一个魔兽显血改键工具
  5. Hystrix之四种触发fallback情况
  6. Spring Cloud Ribbon 全解 (4) - 基本组件实现源码(2)
  7. 直播怎么录屏,妙招分享,亲测好用!
  8. MySQL 开启大页内存
  9. 利用Hexo+github搭建博客,零成本、无需域名、服务器
  10. Android Studio 模拟器打开dev setting 修改IP,重新Reload