需要引入pinyin4j-2.5.0.jar

package com.ytzn.string;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;/*** 获取汉语文字的拼音* @version 1.0 23/07/2010*/
public class PinyinUtil {/*** 汉语拼音格式化工具类*/private static HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();/*** 获取字符串内的所有汉字的汉语拼音** @param src 智宇数字* @return string --> zhi yu shu zi*/public static String spell(String src) {format.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 小写拼音字母format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 不加语调标识format.setVCharType(HanyuPinyinVCharType.WITH_V); // u:的声母替换为vStringBuffer sb = new StringBuffer();int strLength = src.length();try {for (int i = 0; i < strLength; i++) {// 对英文字母的处理:小写字母转换为大写,大写的直接返回char ch = src.charAt(i);if (ch >= 'a' && ch <= 'z')sb.append((char) (ch - 'a' + 'A'));if (ch >= 'A' && ch <= 'Z')sb.append(ch);// 对汉语的处理String[] arr = PinyinHelper.toHanyuPinyinStringArray(ch, format);if (arr != null && arr.length > 0)sb.append(arr[0]).append(" ");}} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return sb.toString();}/*** 获取字符串汉字带声调拼音,首字母大写** @param src 智宇数字* @return string -->Zhì Yŭ Shù Zì*/public static String spellWithTone(String src) {format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);// 标声调format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);// u:的声母if (src == null) {return null;}try {StringBuilder sb = new StringBuilder();for (int i = 0; i < src.length(); i++) {// 对英文字母的处理:小写字母转换为大写,大写的直接返回char ch = src.charAt(i);if (ch >= 'a' && ch <= 'z')sb.append((char) (ch - 'a' + 'A'));if (ch >= 'A' && ch <= 'Z')sb.append(ch);// 对汉语的处理String[] arr = PinyinHelper.toHanyuPinyinStringArray(ch, format);if (arr == null || arr.length == 0) {continue;}String s = arr[0];// 不管多音字,只取第一个char c = s.charAt(0);// 大写第一个字母String pinyin = String.valueOf(c).toUpperCase().concat(s.substring(1));sb.append(pinyin).append(" ");}return sb.toString();} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return null;}/*** 获取字符串内的所有汉字的汉语拼音并大写每个字的首字母** @param src 智宇数字* @return string --> ZhiYuShuZi*/public static String spellNoneTone(String src) {format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 标声调format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);// u:的声母if (src == null) {return null;}try {StringBuilder sb = new StringBuilder();for (int i = 0; i < src.length(); i++) {// 对英文字母的处理:小写字母转换为大写,大写的直接返回char ch = src.charAt(i);if (ch >= 'a' && ch <= 'z')sb.append((char) (ch - 'a' + 'A'));if (ch >= 'A' && ch <= 'Z')sb.append(ch);// 对汉语的处理String[] arr = PinyinHelper.toHanyuPinyinStringArray(ch, format);if (arr == null || arr.length == 0) {continue;}String s = arr[0];// 不管多音字,只取第一个char c = s.charAt(0);// 大写第一个字母String pinyin = String.valueOf(c).toUpperCase().concat(s.substring(1));sb.append(pinyin).append("");}return sb.toString();} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return null;}/*** 获取汉语第一个字的首英文字母** @param src 智宇数字* @return string --> Z*/public static String getTerm(String src) {String res = spell(src);if (res.length() > 0) {return res.toUpperCase().charAt(0) + "";} else {return "OT";}}/*** 获取字符串汉字首字母大写拼接** @param src 智宇数字* @return string -->ZYSZ*/public static String getFirstUpperCaseString(String src) {format.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 大写if (src == null) {return null;}try {StringBuilder sb = new StringBuilder();for (int i = 0; i < src.length(); i++) {// 对英文字母的处理:小写字母转换为大写,大写的直接返回char ch = src.charAt(i);if (ch >= 'a' && ch <= 'z')sb.append((char) (ch - 'a' + 'A'));if (ch >= 'A' && ch <= 'Z')sb.append(ch);// 对汉语的处理String[] arr = PinyinHelper.toHanyuPinyinStringArray(ch, format);if (arr == null || arr.length == 0) {continue;}String s = arr[0];// 不管多音字,只取第一个char c = s.charAt(0);// 大写第一个字母sb.append(c);}return sb.toString();} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}return null;}
}

如果对您有帮助的话,给个赞好吗?

获取拼音首字母(含生僻字)工具类相关推荐

  1. java取汉字拼音首字母含多音字及不常见的字

    package com.anxin.ssk.common;import java.io.UnsupportedEncodingException; import java.util.HashMap; ...

  2. 根据中文姓名或者其他中英文混合字符串获取拼音首字母

    <?php /** * Modified by fuyong @ 2015-09-13 * 修复二分法查找方法 * 汉字拼音首字母工具类 * 注: 英文的字串:不变返回(包括数字) eg .ab ...

  3. thinkphp5.1 + 汉字转拼音 + 获取拼音首字母

    thinkphp5.1 + 汉字转拼音 + 获取拼音首字母 在thinkphp5.1里面引入汉字转拼音类,然后获取首字符 引入汉字转拼音类 1.在extend目录下面创建pingyin文件夹,然后新建 ...

  4. JS输入中文自动获取拼音首字母大写

    输入中文时,自动获取首字母大写 1.安装插件pinyin-pro npm install pinyin-pro 2.引入 import { pinyin } from 'pinyin-pro'; 3. ...

  5. 字符转获取拼音首字母php实现

    <?phpClass HanyuPinyin {private $utf8_gb2312;private $utf8_big5;public function __construct(){$th ...

  6. js 根据中文获取拼音首字母

    本文来自 : https://blog.csdn.net/llf1991/article/details/79868094 版权声明:本文为博主原创文章,未经博主允许不得转载.    https:// ...

  7. php 汉字转拼音及获取拼音首字母

    1. 获取拼音(接受中英文混合): // $_Code is utf8 or gb2312 function pinyin($_String, $pix = '', $_Code='utf8') {$ ...

  8. PostgreSQL 获取拼音首字母的函数 - 摘自互联网

    获取中文拼音首字母的,用到了编码顺序来简化,还有优化空间. CREATE FUNCTION func_chinese_spell(str VARCHAR(2000)) RETURNS VARCHAR( ...

  9. Oracle中根据中文获取拼音首字母

    前言 在软件中方便用户查找信息时,都会用到输拼音首字母的简写快速过滤,所以一般我们在Oracle的表中会加上一列助记符列,今天我们就看看将中文怎么转换为拼音首字母. 实现方式 通过oracle的NLS ...

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

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

最新文章

  1. C# 数组 二维数组
  2. 【算法】9 散列表【待补充】
  3. python贴吧爬虫-Python爬虫——抓取贴吧帖子
  4. 计算机ip地址删除,Windows 8 或 Windows Server 2012 中删除一个 IP 地址时,不正确地删除活动路由表项...
  5. mysql事务机制_MySQL系列:事务机制
  6. android 集成同一interface不同泛型_【Java视频教程】day30-泛型??
  7. uCOS任务堆栈的深入分析(转)
  8. jQuery选择器和选取方法
  9. Linux C 中字符串化操作符#
  10. codeforces D. Design Tutorial: Inverse the Problem
  11. (原+转)ubuntu终端输出彩色文字
  12. Head First设计模式读书笔记六 第七章下 外观模式
  13. 老司机 iOS 周报 #42 | 2018-11-05
  14. 三菱控制器 梯形图 c语言 转换,三菱plc程序设计控制器系列软件功能简介
  15. Java的8种基本数据类型
  16. Word写论文及PPT画论文图的经验总结
  17. unity3D原生声音系统
  18. RGB-D SLAM in Dynamic Environments Using Static Point Weighting论文笔记
  19. Presto日期函数
  20. 堆米微信H5页面怎么制作?易企秀微信H5页面制作,微信简历制作,

热门文章

  1. Linux中部署Spring Cloud项目
  2. [语义分割]SPP、空洞卷积与ASPP总结
  3. SSH端口转发(ssh隧道)
  4. 智力杂志智力杂志社智力编辑部2023年第6期目录
  5. Android手机直播(三)声音采集
  6. 二维空间最近点对问题 python
  7. 海思开发板上添加ftp功能
  8. Ubuntu 18.04安装Docker Dashboard
  9. 6种方法给Vmware虚拟机清理瘦身
  10. 三角形面积的两种计算方法