• java通讯录获取汉字首字母


    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());
  • 相关阅读:
    白盒测试实践——每日例会记录(九)
    白盒测试实践——每日例会记录(八)
    白盒测试实践——每日例会记录(七)
    白盒测试实践——每日例会记录(六)
    白盒测试实践——每日例会记录(五)
    白盒测试实践——每日例会记录(四)
    白盒测试实践——每日例会记录(三)
    codeforces 常用模板总结
    Codeforces 118A String Task
    Codeforces 158A Next Round
  • 原文地址:https://www.cnblogs.com/zhuyeshen/p/11434150.html
Copyright © 2020-2023  润新知