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

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

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

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

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

  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. Hive 教程(六)-Hive Cli

    hive 有两种启动方式,一种是 bin/hive,一种是 hiveserver2, bin/hive 是 hive 的 shell 模式,所有任务在 shell 中完成,shell 就相当于 hiv ...

  2. spark教程(12)-生态与原理

    spark 是目前非常流行的大数据计算框架. spark 生态 Spark core:包含 spark 的基本功能,定义了 RDD 的 API,其他 spark 库都基于 RDD 和 spark co ...

  3. Java后端技术面试汇总(第五套)

    1.Java相关 • 乐观悲观锁的设计,如何保证原子性,解决的问题:• char和double的字节,以及在内存的分布是怎样:• 对象内存布局,然后讲下对象的死亡过程?• 对象头,详细讲下:• syn ...

  4. JS基础_数据类型-Boolean类型

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 分布式的几件小事(六)dubbo如何做服务治理、服务降级以及重试

    1.服务治理 服务治理主要作用是改变运行时服务的行为和选址逻辑,达到限流,权重配置等目的. ①调用链路自动生成 一个大型的分布式系统,会由大量的服务组成,那么这些服务之间的依赖关系和调用链路会很复杂, ...

  6. python调用接口的方式

    python中调用API的几种方式: - urllib2 - httplib2 - pycurl - requests urllib2 import urllib2, urllib github_ur ...

  7. LaTeX的tasks宏包

    tasks 宏包 LaTeX的列表(list)通常是将项(item,条目)一个一个垂直的平行显示,所谓"列"表的由来. 水平分列列表,即将多个项分散到各列而不是一列,在出考卷的选择 ...

  8. 安装Anaconda3-201812详解

    Anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.  因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB), ...

  9. select,poll.epoll区别于联系

    select,poll,epoll都是IO多路复用中的模型.再介绍他们特点时,先来看看多路复用的 模型. 同其他IO的不同的是,IO多路复用一次可以等多个文件描述符.大大提高了等待数据准备好的时间的效 ...

  10. linux ftp 添加用户及权限管理

    Linux下创建用户是很easy的事情了,只不过不经常去做这些操作,时间久了就容易忘记,顺便配置一下FTP.声明:使用Linux版本release 5.6,并以超级管理员root身份运行. 1.创建用 ...