java中汉语转化成拼音的使用详解
项目开发过程中有很多场景使用到汉语转化成拼音、获取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中汉语转化成拼音的使用详解相关推荐
- Java中的宏变量,宏替换详解。
转载自 Java中的宏变量,宏替换详解. 群友在微信群讨论的一个话题,有点意思,特拿出来分享一下. 输出true false 来看下面这段程序,和群友分享的大致一样. public static vo ...
- java中sleep()、wait()相同与不同详解
java中sleep().wait()相同与不同详解 相同 java中Thread#sleep和Object#wait方法都是暂停当前线程,当前线程让出CPU占用.并不存在调用sleep后还占用CPU ...
- Java中将汉语转成拼音的方法
一.准备好相关的jar包 1.包名:pinyin4j-2.5.0.jar 2.地址:网上搜索下 3.引用:有jar包的话直接项目中引用jar包.如果用的是maven的话,需要配置下该报和相应版本. 二 ...
- java 抽象 属性_在java中如何定义一个抽象属性示例详解
前言 本文主要给大家介绍的是在java中定义一个抽象属性的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: Abstract关键字通常被用于类和方法,用来把某些行为的实现委托给 ...
- java中的静态变量的作用域_详解JAVA中static的作用
1.深度总结 引用一位网友的话,说的非常好,如果别人问你static的作用:如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的:如果是说 可以构成 静态代码块,那别人认为你还可以: 如果你说 ...
- JAVA中的String[] args和String args[]详解。
JAVA中的String[] args和String args[]是什么意思? 1.是什么意思? 2.怎样给args赋值? 3.补充事项 1.是什么意思? Java中的String[] args 和S ...
- Java 中的自动装箱和拆箱详解
自动装箱是 Java 编译器在基本类型和它们对应的包装类之间进行的自动转换.例如,将 int 类型转换为 Integer 类型,将 double 类型转换为 Double 型等等.如果转换以相反的方式 ...
- java中object类型_Java常用类object详解
1.Object概述: 类Object是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括数组)都实现这个类的方法. 2.构造方法详细信息: Object只有一个无参构造方法,因为ob ...
- java中字符类型_Java字符类型(详解)
[1]Java中使用单引号来表示字符常量,字符型在内存中占2个字节. char 类型用来表示在Unicode编码表中的字符.Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有655 ...
- JAVA中Explain注解用法,mysql之explain详解(分析索引最佳使用)
mysql之explain详解(分析索引最佳使用) mysql explain用于分析sql 语句的执行及数据库索引的使用.本文将致力于帮助大家充分理解explain所返回的各项参数,从而使大家快速掌 ...
最新文章
- slot没有毁灭的问题_解析flink之perjob模式下yn参数不生效问题
- PHP获取今天开始和结束的时间戳
- php: 通过key获取多维数组中的值
- Dribbble for windows phone 8
- 5 怎么上下分屏_oppo的最新手机reno5系列怎么样
- 部署在SAP Cloud Platform CloudFoundry环境的应用如何消费SAP Leonardo机器学习API
- 华为 原生android 6.0,安卓6.0原生桌面轻体验,我的手机从未如此流畅过
- 光纤交换机是什么,光纤交换机的作用是什么?
- 【Java】函数式编程思想-Lambda表达式
- CLion之C++框架篇-安装工具,基础框架的搭建(一)
- python函数调用键盘热键_如何使用Python控制键盘和鼠标
- 模糊pid控制的温度系统matlab源代码_模糊PID控制系统(二)对比分析
- http | 状态码
- sqlserver数据库修复
- 当前网络上迅雷各版本实际效果研究报告
- 导致企业5S管理失败的八大根源
- Android CameraX 使用入门
- 虚拟机中试用windows 8(视频)
- 从Palm到Pocket PC(转)
- 三国演义中的十大谎言 VS 程序员十大口头禅
热门文章
- Deecamp考试给我的启发
- Uber AI 研究院深度解构 ICLR 2019 最佳论文「彩票假设」!
- 2014.10.6模拟赛【魔兽争霸】
- mysql instead of_mysql unique option prefix myisam_recover instead of myisam-recover-options的解决方法...
- mac无线连接打印机进行打印和扫描
- NeoKylin7配置DM8数据库实例
- python雷达成像(SAR)仿真:(三)徙动校正+方位压缩(完结)
- 万字超详细图文教程:联想G510加装内存条、固态,机械移至光驱位
- 使用JS调用迅雷下载网站本地视频,生成迅雷下载链接
- DeepFace人脸检测(python实现)