项目开发过程中有很多场景使用到汉语转化成拼音、获取ASCII码等的需求,以避免字符集编码不一致造成中文乱码问题。下面开始分享:

1、引入jar包:

       <dependency><groupId>net.sourceforge.jexcelapi</groupId><artifactId>jxl</artifactId><version>2.6.12</version></dependency><dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version></dependency>

2、工具类伪代码:

获取汉语拼音:

/*** 获取中文的拼音* @param src* @return*/public static String getPingYin(String src) {char[] t1 = null;  t1 = src.toCharArray();  String[] t2 = new String[t1.length];  HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();  t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);  t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);  t3.setVCharType(HanyuPinyinVCharType.WITH_V);  String t4 = "";  int t0 = t1.length;  try {  for (int i = 0; i < t0; i++) {  if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {  t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);  t4 += t2[0];  } else  t4 += Character.toString(t1[i]);}return t4;  } catch (BadHanyuPinyinOutputFormatCombination e1) {  e1.printStackTrace();  }  return t4;  }
获取汉语拼音的首字母:
/*** 获取汉语拼音的首字母* @param str* @return*/public static String getPinYinHead(String str) {String convert = "";  for (int j = 0; j < str.length(); j++) {  char word = str.charAt(j);  String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);  if (pinyinArray != null) {  convert += pinyinArray[0].charAt(0);  } else {  convert += word;  }  }  return convert;  }
获取中文的ASCII码: 
/*** 获取中文的ASCII码* @param cnStr* @return*/public static String getCnStrASCII(String cnStr) {StringBuffer strBuf = new StringBuffer();  byte[] bGBK = cnStr.getBytes();  for (int i = 0; i < bGBK.length; i++) {  strBuf.append(Integer.toHexString(bGBK[i] & 0xff));  }  return strBuf.toString();  }

3、客户端测试代码:

   String pingYin = ChineseSpellingUtil.getPingYin("南道");String pingYin1 =  ChineseSpellingUtil.getCnStrASCII("南道");String pingYin2 = ChineseSpellingUtil.getPinYinHead("南道");log.info("[{}]:[{}]:[{}]",pingYin,pingYin1,pingYin2);

4、测试结果:

 [nandao]:[e58d97e98193]:[nd]

到此,汉语转化成拼音的使用分享完毕。

java中汉语转化成拼音的使用详解相关推荐

  1. Java中的宏变量,宏替换详解。

    转载自 Java中的宏变量,宏替换详解. 群友在微信群讨论的一个话题,有点意思,特拿出来分享一下. 输出true false 来看下面这段程序,和群友分享的大致一样. public static vo ...

  2. java中sleep()、wait()相同与不同详解

    java中sleep().wait()相同与不同详解 相同 java中Thread#sleep和Object#wait方法都是暂停当前线程,当前线程让出CPU占用.并不存在调用sleep后还占用CPU ...

  3. Java中将汉语转成拼音的方法

    一.准备好相关的jar包 1.包名:pinyin4j-2.5.0.jar 2.地址:网上搜索下 3.引用:有jar包的话直接项目中引用jar包.如果用的是maven的话,需要配置下该报和相应版本. 二 ...

  4. java 抽象 属性_在java中如何定义一个抽象属性示例详解

    前言 本文主要给大家介绍的是在java中定义一个抽象属性的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: Abstract关键字通常被用于类和方法,用来把某些行为的实现委托给 ...

  5. java中的静态变量的作用域_详解JAVA中static的作用

    1.深度总结 引用一位网友的话,说的非常好,如果别人问你static的作用:如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的:如果是说 可以构成 静态代码块,那别人认为你还可以: 如果你说 ...

  6. JAVA中的String[] args和String args[]详解。

    JAVA中的String[] args和String args[]是什么意思? 1.是什么意思? 2.怎样给args赋值? 3.补充事项 1.是什么意思? Java中的String[] args 和S ...

  7. Java 中的自动装箱和拆箱详解

    自动装箱是 Java 编译器在基本类型和它们对应的包装类之间进行的自动转换.例如,将 int 类型转换为 Integer 类型,将 double 类型转换为 Double 型等等.如果转换以相反的方式 ...

  8. java中object类型_Java常用类object详解

    1.Object概述: 类Object是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括数组)都实现这个类的方法. 2.构造方法详细信息: Object只有一个无参构造方法,因为ob ...

  9. java中字符类型_Java字符类型(详解)

    [1]Java中使用单引号来表示字符常量,字符型在内存中占2个字节. char 类型用来表示在Unicode编码表中的字符.Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有655 ...

  10. JAVA中Explain注解用法,mysql之explain详解(分析索引最佳使用)

    mysql之explain详解(分析索引最佳使用) mysql explain用于分析sql 语句的执行及数据库索引的使用.本文将致力于帮助大家充分理解explain所返回的各项参数,从而使大家快速掌 ...

最新文章

  1. slot没有毁灭的问题_解析flink之perjob模式下yn参数不生效问题
  2. PHP获取今天开始和结束的时间戳
  3. php: 通过key获取多维数组中的值
  4. Dribbble for windows phone 8
  5. 5 怎么上下分屏_oppo的最新手机reno5系列怎么样
  6. 部署在SAP Cloud Platform CloudFoundry环境的应用如何消费SAP Leonardo机器学习API
  7. 华为 原生android 6.0,安卓6.0原生桌面轻体验,我的手机从未如此流畅过
  8. 光纤交换机是什么,光纤交换机的作用是什么?
  9. 【Java】函数式编程思想-Lambda表达式
  10. CLion之C++框架篇-安装工具,基础框架的搭建(一)
  11. python函数调用键盘热键_如何使用Python控制键盘和鼠标
  12. 模糊pid控制的温度系统matlab源代码_模糊PID控制系统(二)对比分析
  13. http | 状态码
  14. sqlserver数据库修复
  15. 当前网络上迅雷各版本实际效果研究报告
  16. 导致企业5S管理失败的八大根源
  17. Android CameraX 使用入门
  18. 虚拟机中试用windows 8(视频)
  19. 从Palm到Pocket PC(转)
  20. 三国演义中的十大谎言 VS 程序员十大口头禅

热门文章

  1. Deecamp考试给我的启发
  2. Uber AI 研究院深度解构 ICLR 2019 最佳论文「彩票假设」!
  3. 2014.10.6模拟赛【魔兽争霸】
  4. mysql instead of_mysql unique option prefix myisam_recover instead of myisam-recover-options的解决方法...
  5. mac无线连接打印机进行打印和扫描
  6. NeoKylin7配置DM8数据库实例
  7. python雷达成像(SAR)仿真:(三)徙动校正+方位压缩(完结)
  8. 万字超详细图文教程:联想G510加装内存条、固态,机械移至光驱位
  9. 使用JS调用迅雷下载网站本地视频,生成迅雷下载链接
  10. DeepFace人脸检测(python实现)