1. package com.baihui.core.utils;
  2. import net.sourceforge.pinyin4j.PinyinHelper;
  3. import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
  4. import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
  5. import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
  6. import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
  7. import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
  8. /**
  9. *
  10. * @author
  11. * @Description 汉字到拼音的处理类
  12. */
  13. public class GetPinyinUtil {
  14.  
  15. /**
  16. * 得到 全拼
  17. *
  18. * @param src
  19. * @return
  20. */
  21. public static String getPingYin(String src) {
  22. char[] t1 = null;
  23. t1 = src.toCharArray();
  24. String[] t2 = new String[t1.length];
  25. HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
  26. t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  27. t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  28. t3.setVCharType(HanyuPinyinVCharType.WITH_V);
  29. String t4 = "";
  30. int t0 = t1.length;
  31. try {
  32. for (int i = 0; i < t0; i++) {
  33. // 判断是否为汉字字符
  34. if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
  35. t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
  36. t4 += t2[0];
  37. } else {
  38. t4 += java.lang.Character.toString(t1[i]);
  39. }
  40. }
  41. return t4;
  42. } catch (BadHanyuPinyinOutputFormatCombination e1) {
  43. e1.printStackTrace();
  44. }
  45. return t4;
  46. }
  47.  
  48. /**
  49. * 得到中文首字母
  50. *
  51. * @param str
  52. * @return
  53. */
  54. public static String getPinYinHeadChar(String str) {
  55. String convert = "";
  56. for (int j = 0; j < str.length(); j++) {
  57. char word = str.charAt(j);
  58. String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
  59. if (pinyinArray != null) {
  60. convert += pinyinArray[0].charAt(0);
  61. } else {
  62. convert += word;
  63. }
  64. }
  65. return convert;
  66. }
  67.  
  68. /**
  69. * 验证是否包含中文
  70. */
  71. public static boolean containsChinese(String s) {
  72. if ((s == null) || ("".equals(s.trim())))
  73. return false;
  74. for (int i = 0; i < s.length(); ++i)
  75. if (isChinese(s.charAt(i)))
  76. return true;
  77.  
  78. return false;
  79. }
  80.  
  81. public static boolean isChinese(char a) {
  82. int v = a;
  83. return ((v >= 19968) && (v <= 171941));
  84. }
  85.  
  86. /**
  87. * 小于6个字符的字符串得到中文首字母
  88. */
  89. public static String getDocFieldValByPinyin(String str){
  90. return str;
  91.  
  92. /*if(str.length()>6)
  93. return str;
  94. if(!containsChinese(str))
  95. return str;
  96. return str+" "+getPinYinHeadChar(str);*/
  97. }
  98.  
  99. /**
  100. * 将字符串转移为ASCII码
  101. *
  102. * @param cnStr
  103. * @return
  104. */
  105. public static String getCnASCII(String cnStr) {
  106. StringBuffer strBuf = new StringBuffer();
  107. byte[] bGBK = cnStr.getBytes();
  108. for (int i = 0; i < bGBK.length; i++) {
  109. // System.out.println(Integer.toHexString(bGBK[i]&0xff));
  110. strBuf.append(Integer.toHexString(bGBK[i] & 0xff));
  111. }
  112. return strBuf.toString();
  113. }
  114. public static String GetPyString(String chinese) throws BadHanyuPinyinOutputFormatCombination{
  115. HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
  116. String chineseTerm;
  117. boolean isFirstChar = true;
  118. if (isFirstChar) {
  119. StringBuilder sb = new StringBuilder();
  120. for (int i = 0; i < chinese.length(); ++i) {
  121. String[] array = PinyinHelper.toHanyuPinyinStringArray(chinese.charAt(i), outputFormat);
  122. if (array != null) { if (array.length == 0)
  123. continue;
  124.  
  125. String s = array[0];
  126. char c = s.charAt(0);
  127.  
  128. sb.append(c); }
  129. }
  130. chineseTerm = sb.toString();
  131. } else {
  132. chineseTerm = PinyinHelper.toHanyuPinyinString(chinese, outputFormat, "");
  133. }
  134. return chineseTerm;
  135. }
  136.  
  137. public static void main(String[] args) {
  138. System.out.println("----------"+getPingYin("行业"));
  139. }
  140.  
  141. }

汉字转拼音工具类java的更多相关文章

  1. java PinYinUtils 拼音工具类

    package com.sicdt.library.core.utils; import java.util.HashSet; import java.util.Set; import net.sou ...

  2. JavaSE-基础语法(二)-系统类(java.lang.*)和工具类(java.util.*)

    系统类(java.lang.*)和工具类(java.util.*) 一.系统类(java.lang.*) 这个包下包含java语言的核心类,如String.Math.System和Thread类等,使 ...

  3. 获取Spring容器中Bean实例的工具类(Java泛型方法实现)

    在使用Spring做IoC容器的时候,有的类不方便直接注入bean,需要手动获得一个类型的bean. 因此,实现一个获得bean实例的工具类,就很有必要. 以前,写了一个根据bean的名称和类型获取b ...

  4. C#工具:汉字转拼音帮助类

    using System.Text; namespace Core.Common { /// <summary> /// 取汉字拼音的首字母 /// </summary> pu ...

  5. C#汉字转拼音帮助类

    using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressi ...

  6. 加密解密工具类(Java,DES)

    一个Java版的DES加密工具类,能够用来进行网络传输数据加密,保存password的时候进行加密. import java.security.Key; import java.security.sp ...

  7. java工具类——java将一串数据按照gzip方式压缩和解压缩

    我要整理在工作中用到的工具类分享出来,也方便自己以后查阅使用,这些工具类都是我自己实际工作中使用的 import java.io.ByteArrayInputStream; import java.i ...

  8. redis集群使用Java工具类(Java jedis集群工具类)

    package com.xiaomi.weather.vote.webservices.util.redisCache; import com.google.common.base.Strings; ...

  9. Redis 工具类 java 实现的redis 工具类

    最近了解了一下非关系型数据库 redis 会使用简单的命令 在自己本地电脑 使用时必须先启动服务器端 在启动客户端 redis 简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内 ...

随机推荐

  1. 默 of 2018:年终总结

    目录 1 概述:在平凡中求变 2 专业分流:一个时代的终点,我的新起点 2.1 我在专业分流前夕的境况 2.2 专业分流情况概述,以及对一篇文章的回顾 2.3 总结与余绪 2.4 附:关于理科与工科的 ...

  2. javascript实例——鼠标特效篇(包含2个实例)

    鼠标是现在电脑的基本配置之一,也是最常用的输入命令的工具之一.本文将将一些与鼠标有关系的特效. 1.跟随鼠标移动的彩色星星 如题,会根据鼠标的移动而移动,并在鼠标周围随机来回移动,让人感觉在放大缩小. ...

  3. c#基础学习(0709)之vs通过抽象方法实现多态

    抽象类不能用来实例化对象 1.抽象类中可以有实例成员,也可以有抽象成员 2.抽象成员不能有任何实现 3.抽象类.抽象成员必须包含在抽象类中 4.抽象类不能用来实例化对象,既然抽象类不能被实例化,那么抽 ...

  4. 结束回调事件(开头必须cp开头,JSProperties传参)

    <dx:ASPxComboBox ID="comBrand" CssClass="case" ClientInstanceName="comBr ...

  5. WCF配置文件与文件下载之坎坷路

    题外话:本以为我会WCF了,精通WCF了,毕竟刚做过一个WCF的项目,不就是写写契约接口,然后实现接口,改下配置.最后用控制台或者服务发布一下,不就能用了.不就是简单ABC吗?不是So Easy吗?做 ...

  6. ABP学习入门系列(三) (领域层中的仓储Repository)

    一,仓储定义:“在领域层和数据映射层的中介,使用类似集合的接口来存取领域对象”(Martin Fowler) . 仓储用来操作数据库进行数据存取.仓储接口在领域层定义,而仓储的实现类应该写在基础设施层 ...

  7. Jsp&Servlet入门级项目全程实录第7讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.获取搜索条件值 function searchStudent(){ $('#dg').datagrid('load ...

  8. 啰里吧嗦redis

    1.redis是什么 redis官网地址 Redis is an open source (BSD licensed), in-memory data structure store, used as ...

  9. Linux下socket通信和多线程

    服务端socket流程:socket() –> bind() –> listen() –> accept() –> 读取.发送信息(recv,send等) 客户端socket流 ...

  10. vue+element ui 的tab 动态增减,切换时提示用户是否切换

    前言:工作中用到 vue+element ui 的前端框架,动态添加 Tab,删除 Tab,切换 Tab 时提示用户是否切换等,发现 element ui  有一个 bug,这里记录一下如何实现.转载 ...