java 中文转拼音
来源:互联网 发布:淘宝可以用话费支付吗 编辑:程序博客网 时间:2024/05/19 09:01
如果在后台代码中能够自动将中文课程名转换成拼音,那根本就不需要让用户来做这样一件事了,话说回来,这个功能,作为用户,也很不好理解自己为什么要做这个。而对开发者来说,也省去了那些异步调用、js那一行行的代码。对吧?
我呢,老老实实的把上面一大串做完了。今天,在百度里输了一行“java汉字转换成拼音”,就这样,pinyin4j被我找到了……
先看个小demo:需要pinyin4j.jar
- /**
- * 获取汉字串拼音首字母,英文字符不变
- *
- * @param chinese 汉字串
- * @return 汉语拼音首字母
- */
- public static String cn2FirstSpell(String chinese) {
- StringBuffer pybf = new StringBuffer();
- char[] arr = chinese.toCharArray();
- HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
- defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
- defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] > 128) {
- try {
- String[] _t = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
- if (_t != null) {
- pybf.append(_t[0].charAt(0));
- }
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- } else {
- pybf.append(arr[i]);
- }
- }
- return pybf.toString().replaceAll("\\W", "").trim().toUpperCase();
- }
- /**
- * 获取汉字串拼音,英文字符不变
- *
- * @param chinese 汉字串
- * @return 汉语拼音
- */
- public static String cn2Spell(String chinese) {
- StringBuffer pybf = new StringBuffer();
- char[] arr = chinese.toCharArray();
- HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
- defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
- defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] > 128) {
- try {
- pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);
- } catch (BadHanyuPinyinOutputFormatCombination e) {
- e.printStackTrace();
- }
- } else {
- pybf.append(arr[i]);
- }
- }
- return pybf.toString();
- }
- public static void main(String[] args)
- {
- String cnStr = "柳松";
- System.out.println(cn2FirstSpell(cnStr));
- System.out.println(cn2Spell(cnStr));
- }
输出:
Pinyin4j是sourceforge.net上的一个开源项目,功能也挺强大的,支持同一汉字有多个发音,支持大小写转换,支持拼音的格式化输出,比如第几声之类的,同时支持简体中文、繁体中文转换为拼音。官网:http://sourceforge.net/directory/os:windows/freshness:recently-updated/?q=pinyin4j
jar包及api文档
就是想说,我们在实现一个功能时,不要被固有的思维束缚,条条大路通罗马,只要我们多多思考,多加想象,总会理出更多思路的。
0 0
- java中文转拼音
- java 中文转拼音
- java中文转拼音
- JAVA 中文转拼音
- java 中文转拼音
- java 中文转拼音
- java中文转拼音
- Java中文转拼音
- Java 中文转拼音
- Java中文自动转拼音
- Java 之中文转拼音
- Java工具类--中文转拼音
- Java工具类--中文转拼音
- java的中文转拼音组件---pinyin4j
- java 中文转拼音之pinyin4j
- Java 中文转拼音工具类
- JAVA UTF-8编码中文转拼音
- java获取中文拼音
- 线性表的应用5(单链表实现二进制的加法)
- php+jquery+ajax+json的一个最简单实例
- 从头构建基于CocoaPods的ReactiveCocoa工程
- 响铃:彩电行业“四国杀”:未来全行业或只剩四家企业
- Simple C# FTP Class
- java 中文转拼音
- unicode和utf8的关系
- Lua_第22章 Debug 库
- 哈工大深研院数字图像处理第一次大作业:不调用Matlab函数实现图像增强
- float型数据与字节数组的转化
- 一个菜鸟后台开始的前端入门(2)
- java.math.BigDecimal
- 测试妹子总结测试常用linux命令
- 内存静态存储区、堆、栈区