java实现中文汉字转中文全拼和拼音首字母缩写的方法
用户为新建产品命名时通常使用中文,而假如后台需要根据用户输入的中文名称进行字段拼接时,就需要将中文汉字转化为中文。所以就用到了pinyin4j这个java工具包(官方网站:http://pinyin4j.sourceforge.net/)。这个工具包是开源的,对于一般常用汉字,转化正确率还是不错的。
对于使用maven的项目,直接添加依赖
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
package oa.common.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;/*** 拼音工具类* * @author lsf*/
public class PingYinUtil {/*** 将字符串中的中文转化为拼音,其他字符不变* * @param inputString* @return*/public static String getPingYin(String inputString) {HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();format.setCaseType(HanyuPinyinCaseType.LOWERCASE);format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);format.setVCharType(HanyuPinyinVCharType.WITH_V);char[] input = inputString.trim().toCharArray();String output = "";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];} elseoutput += java.lang.Character.toString(input[i]);}} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return output;}/** * 获取汉字串拼音首字母,英文字符不变 * @param chinese 汉字串 * @return 汉语拼音首字母 */ public static String getFirstSpell(String chinese) { StringBuffer pybf = new StringBuffer(); char[] arr = chinese.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < arr.length; i++) { if (arr[i] > 128) { try { String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat); if (temp != null) { pybf.append(temp[0].charAt(0)); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { pybf.append(arr[i]); } } return pybf.toString().replaceAll("\\W", "").trim(); } /** * 获取汉字串拼音,英文字符不变 * @param chinese 汉字串 * @return 汉语拼音 */ public static String getFullSpell(String chinese) { StringBuffer pybf = new StringBuffer(); char[] arr = chinese.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < arr.length; i++) { if (arr[i] > 128) { try { pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { pybf.append(arr[i]); } } return pybf.toString(); }
}
java实现中文汉字转中文全拼和拼音首字母缩写的方法相关推荐
- java将汉字转成拼音首字母大写字母_java 根据汉字生成拼音全拼或拼音首字母的示例...
1.情景展示 java 根据中文生成对应的拼音 2.准备工作 所需jar包:pinyin4j-2.5.0.jar 3.解决方案 导包 import net.sourceforge.pinyin4j.P ...
- mysql全拼_Mysql中取得汉字的全拼、拼音首字母
一.创建拼音对照表 复制代码代码如下: - 创建汉字拼音对照临时表 CREATE TABLE IF NOT EXISTS t_base_pinyin ( pin_yin_ varchar(255) C ...
- php汉字首字母缩写,迅搜(XunSearch)+ThinkPHP5实现标题的拼音或拼音首字母缩写搜索...
这是两年前学习Coreseek时在问答区问的一个问题: 当时只是想了下,但没去做,现在学迅搜,又想到这个问题,干脆还是试试把它给做了吧 ^_^ 1.数据表字段 2.ThinkPHP5的model里做 ...
- 如何把汉字转成五笔与拼音(首字母或全部字母)
备注:其中的PY,WB为码表:dll找不到上传得地方 using System; using System.IO; using System.Collections; namespace ChsHel ...
- java 获取中文拼音首字母(缩写)
第一种: 直接上代码(有个别中文无法识别): import java.io.UnsupportedEncodingException; /*** * @author yuki_ho**/ public ...
- mysql 汉字字母拼音_mysql 汉字按拼音字母排序、获取拼音首字母、拼音全拼
一.汉字utf-8 转gbk排序 ORDER BY CONVERT(city_name USING gbk) 二.获取词语拼音首字母 创建函数 CREATE FUNCTION `firstPinyin ...
- input框输入中文内容,另一个input框中时时显示转换后的拼音首字母缩写
最近项目中需要完成在input标签内输入中文字符,动态的在另一个input中时时显示中文字符的首字母缩写(首字母都是大写).直接上代码: value属性可以写成value="",图 ...
- MySQL中文无法按照拼音首字母排序解决方法convert(name USING gbk)
问题如下: 使用默认的order by函数无法对中文数据按照首字母进行排序 SELECT * FROM `test_table` ORDER BY company_name,reply_room_na ...
- Java 输入汉字姓名 输出 姓名拼音 首字母缩写组合
这几天想做一个这样子的功能:在查询客户信息的时候,可以直接根据客户姓名的拼音缩写进行,例如,输入 HZ 就可以查询到姓名为 [黄镇]的客户. 在网上查询到的比较好的做法是在客户信息字段中加上一个拼音缩 ...
最新文章
- SVN删除文件及其恢复问题详解
- 5地图组件 uni_uni-app学习笔记(一)-- uni-app简介
- 测试岗位 mysql 面试题_一套实用的渗透测试岗位面试题,你会吗?
- ui uview 安卓开发_uni-app UI框架之uview-ui使用教程
- Scapy 中文文档:一、介绍
- .NET库和向后兼容的技巧——第2部分
- 玩转springboot2.x之快速搭建(start.spring.io)
- mysql中varbinary、binary、char、varchar异同
- Protobuf C++类中成员函数GetCachedSize()与ByteSize()的区别
- 怎么在安卓手机上阅读txt小说,小说阅读器推荐
- 关关采集器规则编写教程(最详细的教程)
- 基于SAML2.0单点登录的实现(JAVA)
- 站队(使用插入排序完成)——————来自MC老玩家的怒吼
- 小象学院python数据分析课程怎么样_小象学院Python数据分析第二期【升级版】
- [label][WorldPress] 一个很方便查找定位WorldPress源代码位置的网址
- C++基础:模板,函数模板和类模板
- Base64中文乱码解决方法
- GBase 8d证书查看
- VulnStack-ATTCK-3(红日靶场三)
- Java:获取当前日期当前季度、上一季度开始结束日期时间
热门文章
- 大整数类设计(C++)
- matlab 河道水面线计算,河道水面线计算的可视化实现方法及软件
- 微软MFC技术简明介绍
- c语言结构体继承 多态,C语言设计模式-继承、封装和多态
- 三阶矩阵的特征值一般求解
- ArcGIS批量修改CASS标注 | 小技巧,高效率
- 最详细tron节点搭建同步教程
- Maps uniqueIndex
- 基于Mirai框架的QQ机器人使用文档----郑大科协2021招新群
- 解决xxx.exe-无法找到入口,无法定位程序输入点......于动态链接库