1、依赖jar包

maven仓库:

<repository><id>alimaven</id><url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>

GAV:

        <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.1</version></dependency>

2、工具类

package com.xxx.utils;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;
import org.junit.Test;
import org.springframework.stereotype.Component;import java.util.regex.Matcher;
import java.util.regex.Pattern;@Component
public class PinyinUtil {@Testpublic void test(){String s="举个栗子,abc123";System.out.println(getAlpha(s));System.out.println(getPinYin(s));System.out.println(cleanChar(s));//JGLZabc123//jugeliziabc123//举个栗子abc123}/*** 获得汉语拼音首字母** 例:   举个栗子,abc123* 返回值:JGLZabc123*/public static String getAlpha(String chines) {chines = cleanChar(chines);String pinyinName = "";char[] nameChar = chines.toCharArray();HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);for (int i = 0; i < nameChar.length; i++) {if (nameChar[i] > 128) {try {pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0);} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}} else {pinyinName += nameChar[i];}}return pinyinName;}/*** 将字符串中的中文转化为拼音,英文字符不变** 例:    举个栗子,abc123* 返回值: jugeliziabc123*/public static String getPinYin(String inputString) {inputString = cleanChar(inputString);HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();format.setCaseType(HanyuPinyinCaseType.LOWERCASE);format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);format.setVCharType(HanyuPinyinVCharType.WITH_V);String output = "";if (inputString != null && inputString.length() > 0 && !"null".equals(inputString)) {char[] input = inputString.trim().toCharArray();try {for (int i = 0; i < input.length; i++) {if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);output += temp[0];} else {output += java.lang.Character.toString(input[i]);}}} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}} else {return "*";}return output;}/*** 清理特殊字符以便得到* * 例:    举个栗子,abc123* 返回值: 举个栗子abc123*/public static String cleanChar(String chines) {chines = chines.replaceAll("[\\p{Punct}\\p{Space}]+", ""); // 正则去掉所有字符操作// 正则表达式去掉所有中文的特殊符号String regEx = "[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}<>《》【】‘;:”“’。,、?]";Pattern pattern = Pattern.compile(regEx);Matcher matcher = pattern.matcher(chines);chines = matcher.replaceAll("").trim();return chines;}}

JAVA-汉字拼音处理相关推荐

  1. java 汉字拼音排序_Java汉字排序(2)按拼音排序

    1.前言 对于包含汉字的字符串来说,排序的方式主要有两种: 一种是拼音,一种是笔画. 本文就讲述如何实现按拼音排序的比较器(Comparator). 作者:Jeff 发表于:2007年12月21日 1 ...

  2. JAVA汉字拼音解析

    进入了媒资行业,项目需求需要将片名生成拼音并支持多音字处理,主要使用pinyin4j库.结合业务跟网上的例子,整理了一个拼音处理工具类. 项目中需要引入jar包: <dependency> ...

  3. php转换java工具_6款程序员必备的开源中文汉字拼音转换及处理工具 (PHP Java .net)...

    码云项目推荐 1.项目名称: 中文转拼音库 pinyin4j 项目简介:Pinyin4j 是一个流行的 Java 库,支持中文字符和拼音之间的转换.拼音输出格式可以定制. 2.项目名称:汉字/拼音转换 ...

  4. java汉字转换为拼音

    java实现汉字转换拼音可以利用pinyin4j实现 1.加jar包: <dependency><groupId>com.belerweb</groupId>< ...

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

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

  6. java 使用sourceforge.pinyin4j查询汉字拼音

    在我们的系统中,可能经常需要按首字母排序一些信息(比如淘宝商城的品牌列表字母序排列),那么我们就需要一个能够根据汉字查询对应的拼音,取出拼音的首字母即可. 我们使用sourceforge.pinyin ...

  7. java 汉字转换全拼、首字母拼音

    最近接到需求,要求商城中进行半模糊搜索时,输入拼音字母同样要求进行自动匹配出相关品牌.类目.关键词等数据,从而进行筛选商品 本片内容只记录汉字转换拼音 方案一:在mysql数据库中编写函数,此方法存在 ...

  8. Java 汉字转换为拼音字符串

    本文本着学习分享的目的,介绍一种基于java.text.Collator的比较挫的方法,实现汉字转换为拼音字符串.当然我得暂时不考虑汉字多音字的问题.最终结果是这样: 吃 -> CHI    睡 ...

  9. Java汉字转拼音(全拼、首字母拼)

    Java汉字转拼音(全拼.首字母拼) public class ChineseToEnglish { /*** 汉字转拼音* @param src* @return*/public static St ...

  10. java汉字转拼音(全拼、简拼)

    java汉字转拼音(全拼.简拼) <dependency><groupId>com.belerweb</groupId><artifactId>piny ...

最新文章

  1. AI打败外科医生:机器人做手术,你敢来一刀吗?
  2. Velocity的layout功能
  3. 009_JavaScript语句、表达式和代码块
  4. 通讯录新建分组功能php,微信通讯录分组怎么设置
  5. python自动化测试的工具_python自动化测试(3)- 自动化框架及工具
  6. python基础代码的含义_Python基础学习篇
  7. Elasticsearch7.15.2 修改IK分词器源码实现基于MySql8的词库热更新
  8. 马斯克又一语双关 引用猫王金曲威胁直接向推特股东发要约收购?
  9. 通达OA 2013版和2013增强版两个版本开发的一些差异
  10. 华为ICT大赛2016模拟题
  11. 计算机网盘打不开,电脑百度网盘无法打开视频的解决方法|电脑百度网盘无法打开视频如何解决...
  12. DPDK Release 20.05
  13. (黑)群晖系统 ds photo 相机自动备份 无法识别DICM下的Camera解决方案
  14. 09年全球IT企业互联网公司市值排行榜
  15. 计算机概论综述,计算机组成原理唐朔飞PPT 第1章 计算机系统概论综述.ppt
  16. 企业竞争力分析及综合评价体系的构建
  17. Intelligent information retrieval(智能信息检索综述)
  18. python 聚类 客户细分_【火炉炼AI】机器学习027-项目案例:用聚类算法建立客户细分模型...
  19. 计算机辅助英语教学 研究背景,信息时代背景下的英语教学(原稿)
  20. Rsync 服务部署与参数详解

热门文章

  1. cbow word2vec 损失_词向量word2vec之CBOW算法
  2. OpenNI2 和 OpenCV 结合的程序实例
  3. HashMap中负载因子的意义是什么?
  4. 数独用计算机控制比数学家还厉害,比数独更烧脑的数学游戏,让娃练就最强大脑!...
  5. linux中du命令参数的用法,linux中du命令参数及df命令和dd命令介绍
  6. 启动PE系统找不到计算机硬盘,进入PE后找不到电脑硬盘的原因及解决方法
  7. 购买二手计算机信息询问英语作文,英语作文:学生是否应该买二手书
  8. [转]微信小程序和H5微网站有什么区别?
  9. 如何画Q版角色?动漫Q版角色怎么设计?
  10. LaTeX 调整行距、列宽,以及表格的整体大小和字体大小