1.本文只是使用了pinyin4J的主要功能,还有更多更好耍的功能,大家可以去研究官网文档。哈哈

2.pinyin4j的官方下载地址:https://sourceforge.net/projects/pinyin4j/files/

3.我们这里使用的版本是 pinyin4j 2.5.0

  1. ​
  2. package com.zr.util;
  3.  
  4. import net.sourceforge.pinyin4j.PinyinHelper;
  5. import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
  6. import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
  7. import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
  8. import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
  9. import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
  10.  
  11. /**
  12. * 拼音工具类
  13. *
  14. * @author lsf
  15. */
  16. public class PinYinUtil {
  17. /**
  18. * 将字符串中的中文转化为拼音,其他字符不变
  19. *
  20. * @param inputString
  21. * @return
  22. */
  23. public static String getPingYin(String inputString) {
  24. HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
  25. format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  26. format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  27. format.setVCharType(HanyuPinyinVCharType.WITH_V);
  28.  
  29. char[] input = inputString.trim().toCharArray();
  30. String output = "";
  31.  
  32. try {
  33. for (int i = 0; i < input.length; i++) {
  34. if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
  35. String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
  36. output += temp[0];
  37. } else
  38. output += java.lang.Character.toString(input[i]);
  39. }
  40. } catch (BadHanyuPinyinOutputFormatCombination e) {
  41. e.printStackTrace();
  42. }
  43. return output;
  44. }
  45. /**
  46. * 获取汉字串拼音首字母,英文字符不变
  47. * @param chinese 汉字串
  48. * @return 汉语拼音首字母
  49. */
  50. public static String getFirstSpell(String chinese) {
  51. StringBuffer pybf = new StringBuffer();
  52. char[] arr = chinese.toCharArray();
  53. HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
  54. defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  55. defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  56. for (int i = 0; i < arr.length; i++) {
  57. if (arr[i] > 128) {
  58. try {
  59. String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
  60. if (temp != null) {
  61. pybf.append(temp[0].charAt(0));
  62. }
  63. } catch (BadHanyuPinyinOutputFormatCombination e) {
  64. e.printStackTrace();
  65. }
  66. } else {
  67. pybf.append(arr[i]);
  68. }
  69. }
  70. return pybf.toString().replaceAll("\\W", "").trim();
  71. }
  72. /**
  73. * 获取汉字串拼音,英文字符不变
  74. * @param chinese 汉字串
  75. * @return 汉语拼音
  76. */
  77. public static String getFullSpell(String chinese) {
  78. StringBuffer pybf = new StringBuffer();
  79. char[] arr = chinese.toCharArray();
  80. HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
  81. defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  82. defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  83. for (int i = 0; i < arr.length; i++) {
  84. if (arr[i] > 128) {
  85. try {
  86. pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);
  87. } catch (BadHanyuPinyinOutputFormatCombination e) {
  88. e.printStackTrace();
  89. }
  90. } else {
  91. pybf.append(arr[i]);
  92. }
  93. }
  94. return pybf.toString();
  95. }
  96. }
  97.  
  98. ​

添加好工具类后,在程序中调用:

  1. //要获取的字段
  2. String szm = PinYinUtil.getFirstSpell(String string);
  3. //截取第一位
  4. String yis = szm.substring(0, 1);
  5. //输出结果并且把获取到的字母转换成大写
  6. System.out.println(yis.toUpperCase());

java通讯录获取汉字首字母的更多相关文章

  1. JS获取汉字首字母

    //获取 汉字首字母 function makePy(str) { if (typeof (str) != "string") throw new Error(-1, " ...

  2. ASP.NET获取汉字首字母

    /// <summary> /// 获取汉字首字母(可包含多个汉字) /// </summary> /// <param name="strText" ...

  3. php获取汉字首字母

    php获取汉字首字母,可以用于按字母对数据进行检索排序等. 分享下网上找的代码.亲测有效. function getFirstCharter($str){ if(empty($str)){return ...

  4. JS实现获取汉字首字母拼音、全拼音及混拼音的方法

    本文实例讲述了JS实现获取汉字首字母拼音.全拼音及混拼音的方法.分享给大家供大家参考,具体如下: 这里需要用到一个js获取汉字拼音的插件,可点击此处本站下载. 运行效果如下: 完整示例代码: ? 1 ...

  5. .NET获取汉字首字母

    /// <summary> /// 获取汉字首字母(可包含多个汉字) /// </summary> /// <param name="strText" ...

  6. python获取汉字首字母

    获取汉字首字母 关注公众号"轻松学编程"了解更多. 应用场景之一:可用于获取名字首字母,在数据库中查询记录时,可以用它来排序输出. from pytz import unicode ...

  7. php获取汉字首字母的函数

    本文介绍用php实现汉字转化为首字母的方法,主要功能是:功能明确,易于修改维护和扩展: 英文的字串:不变返回(包括数字):中文字符串:返回拼音首字符: 中英混合串: 返回拼音首字符和英文. 网上的方法 ...

  8. php获取汉字首字母实例

    在我们实际开发工作中,有时候需要获取输入汉字的首字母,然后存到库中,方便用户搜索相关信息,下面给出php代码,留做备用: //新添加获取汉子首字,首字字母 function pinyin($zh){ ...

  9. PHP获取汉字首字母并分组排序

    <?php /** * 错误状态码定义 * User: xiucai * Date: 2018/3/11 * Time: 12:23 */ namespace extend; class Wor ...

随机推荐

  1. cf 1163D Mysterious Code (字符串, dp)

    大意: 给定字符串$C$, 只含小写字母和'*', '*'表示可以替换为任意小写字母, 再给定字符串$S,T$, 求$S$在$C$中出现次数-$T$在$C$中出现次数最大值. 设$dp[i][j][k ...

  2. Collection接口的子接口——Set接口

    https://docs.oracle.com/javase/8/docs/api/java/util/Set.html public interface Set<E>  extends ...

  3. JavaSE--jdbc编程

    JDBC全称为:Java Data Base Connectivity (java数据库连接),可以为多种数据库提供统一的访问.JDBC是sun开发的一套数据库访问编程接口,是一种SQL级的API.它 ...

  4. 剑指offer-左旋转字符串-知识迁移能力-python

    题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=”abcX ...

  5. MVC 部署到服务器

    1.Nuget程序包管理 —>程序包管理控制台,运行以下命令即可:Update-Package Microsoft.AspNet.WebApi -reinstall 2.dll文件的缺少,覆盖

  6. 【Activiti】crm与工作流的整合,一个完整的流程实例创建到任务完成的过程

    1.建立任务列表页面--根据用户的nickName作为assignee查询其所拥有的任务列表 2.在任务后添加办理按钮 3.点击办理按钮,出现流程办理框,其中详细显示了该任务的相关详细信息,本实例中为 ...

  7. 部署 12306 github 项目

    郑重声明, 本文仅用作学习研究使用,请勿用作商业用途,遵守法律!!! 部署环境有些坑,踩一次就够了... 原项目地址 git clone 原项目以及 识别验证码的模型 如果遇到 无法解析的问题 ,则 ...

  8. airflow介绍

    1. airflow 介绍 1.1 airflow 是什么 Airflow is a platform to programmatically author, schedule and monitor ...

  9. zencart简单设置分类链接不同css样式

    includes/templates/模板/sideboxes/tpl_categories.php $content .= '<a class="'.$new_style.'&quo ...

  10. string::find_last_not_of

    #include <iostream>#include <string> using namespace std;int main(){ string s1("abc ...