用户为新建产品命名时通常使用中文,而假如后台需要根据用户输入的中文名称进行字段拼接时,就需要将中文汉字转化为中文。所以就用到了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实现中文汉字转中文全拼和拼音首字母缩写的方法相关推荐

  1. java将汉字转成拼音首字母大写字母_java 根据汉字生成拼音全拼或拼音首字母的示例...

    1.情景展示 java 根据中文生成对应的拼音 2.准备工作 所需jar包:pinyin4j-2.5.0.jar 3.解决方案 导包 import net.sourceforge.pinyin4j.P ...

  2. mysql全拼_Mysql中取得汉字的全拼、拼音首字母

    一.创建拼音对照表 复制代码代码如下: - 创建汉字拼音对照临时表 CREATE TABLE IF NOT EXISTS t_base_pinyin ( pin_yin_ varchar(255) C ...

  3. php汉字首字母缩写,迅搜(XunSearch)+ThinkPHP5实现标题的拼音或拼音首字母缩写搜索...

    这是两年前学习Coreseek时在问答区问的一个问题: 当时只是想了下,但没去做,现在学迅搜,又想到这个问题,干脆还是试试把它给做了吧 ^_^ 1.数据表字段 2.ThinkPHP5的model里做 ...

  4. 如何把汉字转成五笔与拼音(首字母或全部字母)

    备注:其中的PY,WB为码表:dll找不到上传得地方 using System; using System.IO; using System.Collections; namespace ChsHel ...

  5. java 获取中文拼音首字母(缩写)

    第一种: 直接上代码(有个别中文无法识别): import java.io.UnsupportedEncodingException; /*** * @author yuki_ho**/ public ...

  6. mysql 汉字字母拼音_mysql 汉字按拼音字母排序、获取拼音首字母、拼音全拼

    一.汉字utf-8 转gbk排序 ORDER BY CONVERT(city_name USING gbk) 二.获取词语拼音首字母 创建函数 CREATE FUNCTION `firstPinyin ...

  7. input框输入中文内容,另一个input框中时时显示转换后的拼音首字母缩写

    最近项目中需要完成在input标签内输入中文字符,动态的在另一个input中时时显示中文字符的首字母缩写(首字母都是大写).直接上代码: value属性可以写成value="",图 ...

  8. MySQL中文无法按照拼音首字母排序解决方法convert(name USING gbk)

    问题如下: 使用默认的order by函数无法对中文数据按照首字母进行排序 SELECT * FROM `test_table` ORDER BY company_name,reply_room_na ...

  9. Java 输入汉字姓名 输出 姓名拼音 首字母缩写组合

    这几天想做一个这样子的功能:在查询客户信息的时候,可以直接根据客户姓名的拼音缩写进行,例如,输入 HZ 就可以查询到姓名为 [黄镇]的客户. 在网上查询到的比较好的做法是在客户信息字段中加上一个拼音缩 ...

最新文章

  1. SVN删除文件及其恢复问题详解
  2. 5地图组件 uni_uni-app学习笔记(一)-- uni-app简介
  3. 测试岗位 mysql 面试题_一套实用的渗透测试岗位面试题,你会吗?
  4. ui uview 安卓开发_uni-app UI框架之uview-ui使用教程
  5. Scapy 中文文档:一、介绍
  6. .NET库和向后兼容的技巧——第2部分
  7. 玩转springboot2.x之快速搭建(start.spring.io)
  8. mysql中varbinary、binary、char、varchar异同
  9. Protobuf C++类中成员函数GetCachedSize()与ByteSize()的区别
  10. 怎么在安卓手机上阅读txt小说,小说阅读器推荐
  11. 关关采集器规则编写教程(最详细的教程)
  12. 基于SAML2.0单点登录的实现(JAVA)
  13. 站队(使用插入排序完成)——————来自MC老玩家的怒吼
  14. 小象学院python数据分析课程怎么样_小象学院Python数据分析第二期【升级版】
  15. [label][WorldPress] 一个很方便查找定位WorldPress源代码位置的网址
  16. C++基础:模板,函数模板和类模板
  17. Base64中文乱码解决方法
  18. GBase 8d证书查看
  19. VulnStack-ATTCK-3(红日靶场三)
  20. Java:获取当前日期当前季度、上一季度开始结束日期时间

热门文章

  1. 大整数类设计(C++)
  2. matlab 河道水面线计算,河道水面线计算的可视化实现方法及软件
  3. 微软MFC技术简明介绍
  4. c语言结构体继承 多态,C语言设计模式-继承、封装和多态
  5. 三阶矩阵的特征值一般求解
  6. ArcGIS批量修改CASS标注 | 小技巧,高效率
  7. 最详细tron节点搭建同步教程
  8. Maps uniqueIndex
  9. 基于Mirai框架的QQ机器人使用文档----郑大科协2021招新群
  10. 解决xxx.exe-无法找到入口,无法定位程序输入点......于动态链接库