最近在项目中有需求将汉字转拼音,找到了相关资料,整理如下

/*

* @1 版本说明: 2013-07-27 pj add

*

* @2 函数说明:返回字符串的全拼

*/

public static String getPingYin(String s) {

//1. 将字符串拆成char数组

char[] s1 = s.toCharArray();

String[] s2 = new String[s1.length];

HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();

//1. 设置格式化为大写

format.setCaseType(HanyuPinyinCaseType.LOWERCASE);

/*

HanyuPinyinToneType.WITH_TONE_NUMBER 用数字表示声调,例如:liu2

HanyuPinyinToneType.WITHOUT_TONE 无声调表示,例如:liu

HanyuPinyinToneType.WITH_TONE_MARK 用声调符号表示,例如:liú

*/

format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

/*

设置特殊拼音ü的显示格式:

HanyuPinyinVCharType.WITH_U_AND_COLON 以U和一个冒号表示该拼音,例如:lu:

HanyuPinyinVCharType.WITH_V 以V表示该字符,例如:lv

HanyuPinyinVCharType.WITH_U_UNICODE 以ü表示

*/

format.setVCharType(HanyuPinyinVCharType.WITH_V);

String s4 = "";

int s0 = s1.length;

try {

for (int i = 0; i < s0; i++) {

// 判断是否为汉字字符

if (java.lang.Character.toString(s1[i]).matches(

"[\\u4E00-\\u9FA5]+")) {

s2 = PinyinHelper.toHanyuPinyinStringArray(s1[i], format);

s4 += s2[0];

} else {

s4 += java.lang.Character.toString(s1[i]);

}

}

return s4;

} catch (BadHanyuPinyinOutputFormatCombination e1) {

e1.printStackTrace();

}

return s4;

}

/*

*@1  版本说明:2013-07-27 pj add

*

*@2  函数说明:返回字符串的简拼

*/

public static String getPinYinHeadChar(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;

}

/*

* @1 版本信息: 2013-7-27 pj add

*

* @2 函数说明: 将字符串转移为ASCII码

*/

public static String getCnASCII(String cnStr) {

StringBuffer strBuf = new StringBuffer();

byte[] bGBK = cnStr.getBytes();

for (int i = 0; i < bGBK.length; i++) {    // System.out.println(Integer.toHexString(bGBK[i]&0xff));    strBuf.append(Integer.toHexString(bGBK[i] & 0xff));   }   return strBuf.toString();  }

java 汉字转拼音原理_java 汉字转拼音相关推荐

  1. java 汉字转拼音原理_Java汉字转成汉语拼音工具类

    Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...

  2. java 汉字拼音排序_Java汉字排序(2)按拼音排序

    1.前言 对于包含汉字的字符串来说,排序的方式主要有两种: 一种是拼音,一种是笔画. 本文就讲述如何实现按拼音排序的比较器(Comparator). 作者:Jeff 发表于:2007年12月21日 1 ...

  3. java 汉字按拼音排序_Java汉字按照拼音排序

    @Test public void testSortPinyin() { Collator cmp = Collator.getInstance(java.util.Locale.CHINA); St ...

  4. java 汉字转拼音缩写_java文字转拼音、首字母缩写

    public class Pinyin { /** * 得到 全拼 * * @param src * @return */ public static String getPingYin(String ...

  5. java 汉字转拼音工具_java汉字转拼音工具类

    public classPinYinUtils {public staticHanyuPinyinOutputFormat PINYIN_FORMAT;static{ PINYIN_FORMAT= n ...

  6. java set和get原理_Java线程池的实现原理和使用

    为什么用线程池 在我们进行开发的时候,为了充分利用系统资源,我们通常会进行多线程开发,实现起来非常简单,需要使用线程的时候就去创建一个线程(继承Thread类.实现Runnable接口.使用Calla ...

  7. java能够运行的原理_JAVA程序运行原理分析(一)

    作为JAVA的开发人员,需要知道JAVA是如何运行的,这个需要好好思考下. (一)class文件内容 class文件包含JAVA程序执行的字节码,也就是说程序的执行是通过class里面的内容进行执行的 ...

  8. java虚拟机堆栈工作原理_java虚拟机工作原理?

    展开全部 从宏观上介绍一下Java虚拟机的e5a48de588b662616964757a686964616f31333363373731工作原理.从最初编写的Java源文件(.java文件)是如何一 ...

  9. java缓存技术redis原理_Java架构师-5分钟带你深入理解Redis的持久化方式及其原理...

    Redis 提供了两种持久化方式,一种是基于快照形式的 RDB,另一种是基于日志形式的 AOF,每种方式都有自己的优缺点,本文将介绍 Redis 这两种持久化方式,希望阅读本文后你对 Redis 的这 ...

最新文章

  1. 云网融合 — 云网络的边界
  2. 统计学习方法第十四章作业:聚类—层次聚类聚合/分裂算法、K_means聚类算法 代码实现
  3. fastcopy会损坏硬盘_硬盘坏了数据可以修复吗?恢复技巧都在这!
  4. hadoop学习笔记(三):hdfs体系结构和读写流程(转)
  5. C++ functor 仿函数
  6. 阿里云参加ONS EU 2018,飞天洛神亮相网络顶会
  7. 高频面试题3 类初始化过程与实例初始化
  8. Detours的作用和实例(hook、钩子)
  9. java spring 面向切面编程_Spring Boot实战系列(3)AOP面向切面编程
  10. 直播带货,碾压无数上市公司
  11. ThinkPHP5中的助手函数
  12. 跟我一起认识axure(二)
  13. 【JWT】JWT+HA256加密 Token验证
  14. 【数据分享】全国POI数据分享(持续更新中)
  15. knockoutjs 读源码
  16. 17种最重要的项目管理方法
  17. Struts2通配符问题
  18. 非科班小硕的算法秋招记录
  19. 如何进行支付流程及安全测试?
  20. 微积分review 极限,迫敛性,极限四则运算,自然常数来历

热门文章

  1. android八股文
  2. 【解决】萤石云接入视频报错视频编码类型非H264
  3. 自用的一些平时记录. 时不时更新
  4. VMware ESxi 7.0定时关机
  5. mysql connector详解_MySQL Connector 编程
  6. Latex中处理中文
  7. 【cx_Oracle】记录一次 python cx_Oracle出现 ORA-00911: 无效字符
  8. Linux系统编程第六节——进程的替换(execl、exelp、execle、execv、execvp、execve)
  9. 基于百度飞浆平台(EasyDL)设计的人脸识别考勤系统
  10. TcPlayer.js 实现文字朗读