科帮网-Java论坛、Java社区、JavaWeb毕业设计

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > 中文获取全拼功能代码
总共48085条微博

动态微博

查看: 1288|回复: 1

中文获取全拼功能代码

[复制链接]

279

主题

41

听众

689

金钱

版主

该用户从未签到

跳转到指定楼层
楼主
发表于 2015-03-30 10:28:52 |只看该作者 |倒序浏览
  1. package com.fh.util;
  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. * @explain:中文获取全拼功能代码
  10. *
  11. * @author:
  12. *
  13. * @version:
  14. */
  15. public class GetPinyin {

  16.         /**
  17.          * 得到 全拼
  18.          *
  19.          * @param src
  20.          * @return
  21.          */
  22.         public static String getPingYin(String src) {
  23.                 char[] t1 = null;
  24.                 t1 = src.toCharArray();
  25.                 String[] t2 = new String[t1.length];
  26.                 HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
  27.                 t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  28.                 t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  29.                 t3.setVCharType(HanyuPinyinVCharType.WITH_V);
  30.                 String t4 = "";
  31.                 int t0 = t1.length;
  32.                 try {
  33.                         for (int i = 0; i < t0; i++) {
  34.                                 // 判断是否为汉字字符
  35.                                 if (java.lang.Character.toString(t1[i]).matches(
  36.                                                 "[\\u4E00-\\u9FA5]+")) {
  37.                                         t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
  38.                                         t4 += t2[0];
  39.                                 } else {
  40.                                         t4 += java.lang.Character.toString(t1[i]);
  41.                                 }
  42.                         }
  43.                         return t4;
  44.                 } catch (BadHanyuPinyinOutputFormatCombination e1) {
  45.                         e1.printStackTrace();
  46.                 }
  47.                 return t4;
  48.         }

  49.         /**
  50.          * 得到中文首字母
  51.          *
  52.          * @param str
  53.          * @return
  54.          */
  55.         public static String getPinYinHeadChar(String str) {

  56.                 String convert = "";
  57.                 for (int j = 0; j < str.length(); j++) {
  58.                         char word = str.charAt(j);
  59.                         String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
  60.                         if (pinyinArray != null) {
  61.                                 convert += pinyinArray[0].charAt(0);
  62.                         } else {
  63.                                 convert += word;
  64.                         }
  65.                 }
  66.                 return convert;
  67.         }

  68.         /**
  69.          * 将字符串转移为ASCII码
  70.          *
  71.          * @param cnStr
  72.          * @return
  73.          */
  74.         public static String getCnASCII(String cnStr) {
  75.                 StringBuffer strBuf = new StringBuffer();
  76.                 byte[] bGBK = cnStr.getBytes();
  77.                 for (int i = 0; i < bGBK.length; i++) {
  78.                         // System.out.println(Integer.toHexString(bGBK[i]&0xff));
  79.                         strBuf.append(Integer.toHexString(bGBK[i] & 0xff));
  80.                 }
  81.                 return strBuf.toString();
  82.         }

  83.         public static void main(String[] args) {

  84.                 String cnStr = "中国";
  85.                 System.out.println(getPingYin(cnStr));
  86.                 System.out.println(getPinYinHeadChar(cnStr));
  87.         }

  88. }
复制代码



科帮网-Java论坛、Java社区、JavaWeb毕业设计 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与科帮网-Java论坛、Java社区、JavaWeb毕业设计享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网-Java论坛、Java社区、JavaWeb毕业设计的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、科帮网-Java论坛、Java社区、JavaWeb毕业设计管理员和版主有权不事先通知发贴者而删除本文


JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

2

主题

0

听众

122

金钱

三袋弟子

该用户从未签到

90后

沙发
发表于 2015-03-31 00:16:22 |只看该作者
,蛮好的啊。。。
回复

使用道具 举报

快速回复
您需要登录后才可以回帖 登录 | 立即注册

   

发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
快速回复 返回顶部 返回列表