java 汉字转拼音原理_java 汉字转拼音
最近在项目中有需求将汉字转拼音,找到了相关资料,整理如下
/*
* @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 汉字转拼音相关推荐
- java 汉字转拼音原理_Java汉字转成汉语拼音工具类
Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...
- java 汉字拼音排序_Java汉字排序(2)按拼音排序
1.前言 对于包含汉字的字符串来说,排序的方式主要有两种: 一种是拼音,一种是笔画. 本文就讲述如何实现按拼音排序的比较器(Comparator). 作者:Jeff 发表于:2007年12月21日 1 ...
- java 汉字按拼音排序_Java汉字按照拼音排序
@Test public void testSortPinyin() { Collator cmp = Collator.getInstance(java.util.Locale.CHINA); St ...
- java 汉字转拼音缩写_java文字转拼音、首字母缩写
public class Pinyin { /** * 得到 全拼 * * @param src * @return */ public static String getPingYin(String ...
- java 汉字转拼音工具_java汉字转拼音工具类
public classPinYinUtils {public staticHanyuPinyinOutputFormat PINYIN_FORMAT;static{ PINYIN_FORMAT= n ...
- java set和get原理_Java线程池的实现原理和使用
为什么用线程池 在我们进行开发的时候,为了充分利用系统资源,我们通常会进行多线程开发,实现起来非常简单,需要使用线程的时候就去创建一个线程(继承Thread类.实现Runnable接口.使用Calla ...
- java能够运行的原理_JAVA程序运行原理分析(一)
作为JAVA的开发人员,需要知道JAVA是如何运行的,这个需要好好思考下. (一)class文件内容 class文件包含JAVA程序执行的字节码,也就是说程序的执行是通过class里面的内容进行执行的 ...
- java虚拟机堆栈工作原理_java虚拟机工作原理?
展开全部 从宏观上介绍一下Java虚拟机的e5a48de588b662616964757a686964616f31333363373731工作原理.从最初编写的Java源文件(.java文件)是如何一 ...
- java缓存技术redis原理_Java架构师-5分钟带你深入理解Redis的持久化方式及其原理...
Redis 提供了两种持久化方式,一种是基于快照形式的 RDB,另一种是基于日志形式的 AOF,每种方式都有自己的优缺点,本文将介绍 Redis 这两种持久化方式,希望阅读本文后你对 Redis 的这 ...
最新文章
- 云网融合 — 云网络的边界
- 统计学习方法第十四章作业:聚类—层次聚类聚合/分裂算法、K_means聚类算法 代码实现
- fastcopy会损坏硬盘_硬盘坏了数据可以修复吗?恢复技巧都在这!
- hadoop学习笔记(三):hdfs体系结构和读写流程(转)
- C++ functor 仿函数
- 阿里云参加ONS EU 2018,飞天洛神亮相网络顶会
- 高频面试题3 类初始化过程与实例初始化
- Detours的作用和实例(hook、钩子)
- java spring 面向切面编程_Spring Boot实战系列(3)AOP面向切面编程
- 直播带货,碾压无数上市公司
- ThinkPHP5中的助手函数
- 跟我一起认识axure(二)
- 【JWT】JWT+HA256加密 Token验证
- 【数据分享】全国POI数据分享(持续更新中)
- knockoutjs 读源码
- 17种最重要的项目管理方法
- Struts2通配符问题
- 非科班小硕的算法秋招记录
- 如何进行支付流程及安全测试?
- 微积分review 极限,迫敛性,极限四则运算,自然常数来历
热门文章
- android八股文
- 【解决】萤石云接入视频报错视频编码类型非H264
- 自用的一些平时记录. 时不时更新
- VMware ESxi 7.0定时关机
- mysql connector详解_MySQL Connector 编程
- Latex中处理中文
- 【cx_Oracle】记录一次 python cx_Oracle出现 ORA-00911: 无效字符
- Linux系统编程第六节——进程的替换(execl、exelp、execle、execv、execvp、execve)
- 基于百度飞浆平台(EasyDL)设计的人脸识别考勤系统
- TcPlayer.js 实现文字朗读