JAVA-汉字拼音处理
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-汉字拼音处理相关推荐
- java 汉字拼音排序_Java汉字排序(2)按拼音排序
1.前言 对于包含汉字的字符串来说,排序的方式主要有两种: 一种是拼音,一种是笔画. 本文就讲述如何实现按拼音排序的比较器(Comparator). 作者:Jeff 发表于:2007年12月21日 1 ...
- JAVA汉字拼音解析
进入了媒资行业,项目需求需要将片名生成拼音并支持多音字处理,主要使用pinyin4j库.结合业务跟网上的例子,整理了一个拼音处理工具类. 项目中需要引入jar包: <dependency> ...
- php转换java工具_6款程序员必备的开源中文汉字拼音转换及处理工具 (PHP Java .net)...
码云项目推荐 1.项目名称: 中文转拼音库 pinyin4j 项目简介:Pinyin4j 是一个流行的 Java 库,支持中文字符和拼音之间的转换.拼音输出格式可以定制. 2.项目名称:汉字/拼音转换 ...
- java汉字转换为拼音
java实现汉字转换拼音可以利用pinyin4j实现 1.加jar包: <dependency><groupId>com.belerweb</groupId>< ...
- Java汉字转拼音工具类(支持首字母和全拼)
工具类产生是因为个人业务需求需要根据中文汉字排序,而博主又对网上回答不满意,所以才根据相关资料写了该工具类,写入博客 以备不时之需.直接上代码: Java汉字转成汉语拼音工具类,需要用到pinyin4 ...
- java 使用sourceforge.pinyin4j查询汉字拼音
在我们的系统中,可能经常需要按首字母排序一些信息(比如淘宝商城的品牌列表字母序排列),那么我们就需要一个能够根据汉字查询对应的拼音,取出拼音的首字母即可. 我们使用sourceforge.pinyin ...
- java 汉字转换全拼、首字母拼音
最近接到需求,要求商城中进行半模糊搜索时,输入拼音字母同样要求进行自动匹配出相关品牌.类目.关键词等数据,从而进行筛选商品 本片内容只记录汉字转换拼音 方案一:在mysql数据库中编写函数,此方法存在 ...
- Java 汉字转换为拼音字符串
本文本着学习分享的目的,介绍一种基于java.text.Collator的比较挫的方法,实现汉字转换为拼音字符串.当然我得暂时不考虑汉字多音字的问题.最终结果是这样: 吃 -> CHI 睡 ...
- Java汉字转拼音(全拼、首字母拼)
Java汉字转拼音(全拼.首字母拼) public class ChineseToEnglish { /*** 汉字转拼音* @param src* @return*/public static St ...
- java汉字转拼音(全拼、简拼)
java汉字转拼音(全拼.简拼) <dependency><groupId>com.belerweb</groupId><artifactId>piny ...
最新文章
- AI打败外科医生:机器人做手术,你敢来一刀吗?
- Velocity的layout功能
- 009_JavaScript语句、表达式和代码块
- 通讯录新建分组功能php,微信通讯录分组怎么设置
- python自动化测试的工具_python自动化测试(3)- 自动化框架及工具
- python基础代码的含义_Python基础学习篇
- Elasticsearch7.15.2 修改IK分词器源码实现基于MySql8的词库热更新
- 马斯克又一语双关 引用猫王金曲威胁直接向推特股东发要约收购?
- 通达OA 2013版和2013增强版两个版本开发的一些差异
- 华为ICT大赛2016模拟题
- 计算机网盘打不开,电脑百度网盘无法打开视频的解决方法|电脑百度网盘无法打开视频如何解决...
- DPDK Release 20.05
- (黑)群晖系统 ds photo 相机自动备份 无法识别DICM下的Camera解决方案
- 09年全球IT企业互联网公司市值排行榜
- 计算机概论综述,计算机组成原理唐朔飞PPT 第1章 计算机系统概论综述.ppt
- 企业竞争力分析及综合评价体系的构建
- Intelligent information retrieval(智能信息检索综述)
- python 聚类 客户细分_【火炉炼AI】机器学习027-项目案例:用聚类算法建立客户细分模型...
- 计算机辅助英语教学 研究背景,信息时代背景下的英语教学(原稿)
- Rsync 服务部署与参数详解
热门文章
- cbow word2vec 损失_词向量word2vec之CBOW算法
- OpenNI2 和 OpenCV 结合的程序实例
- HashMap中负载因子的意义是什么?
- 数独用计算机控制比数学家还厉害,比数独更烧脑的数学游戏,让娃练就最强大脑!...
- linux中du命令参数的用法,linux中du命令参数及df命令和dd命令介绍
- 启动PE系统找不到计算机硬盘,进入PE后找不到电脑硬盘的原因及解决方法
- 购买二手计算机信息询问英语作文,英语作文:学生是否应该买二手书
- [转]微信小程序和H5微网站有什么区别?
- 如何画Q版角色?动漫Q版角色怎么设计?
- LaTeX 调整行距、列宽,以及表格的整体大小和字体大小