import com.github.stuxuhai.jpinyin.ChineseHelper;
import com.github.stuxuhai.jpinyin.PinyinFormat;
import com.github.stuxuhai.jpinyin.PinyinHelper; /**
* @ClassName: ChineseConvertPinyinUtil
* @Description: 汉语繁体拼音转换工具类
*/
public final class ChineseConvertPinyinUtil {
private static final String SPACEMARK = "";
private ChineseConvertPinyinUtil() {} /**
* 检查汉字是否为多音字
* @param pinYinStr 需转换的汉字
* @param deleteBlank 转换后去掉非打印字符
* @param spaceMark 非打印字符
* @return true 多音字,false 不是多音字
*/
public static boolean checkPinYin(char pinYinStr) {
boolean check = false;
try {
check = PinyinHelper.hasMultiPinyin(pinYinStr);
} catch (Exception e) {
e.printStackTrace();
}
return check;
} /**
* 转换为每个汉字对应拼音首字母字符串
* @param pinYinStr 需转换的汉字
* @param deleteBlank 转换后去掉非打印字符
* @param spaceMark 非打印字符
* @return 拼音字符串
*/
public static String convertToGetShortPinYin(String pinYinStr, boolean deleteBlank) {
String tempStr = null;
try {
tempStr = PinyinHelper.getShortPinyin(pinYinStr);
} catch (Exception e) {
tempStr = pinYinStr;
e.printStackTrace();
}
if (deleteBlank) {
tempStr = tempStr.replaceAll("\\s*", SPACEMARK);
}
return tempStr;
} /**
* 转换为有声调的拼音字符串
* @param pinYinStr 汉字
* @param deleteBlank 转换后去掉非打印字符
* @param spaceMark 非打印字符
* @return 有声调的拼音字符串
*/
public static String convertToMarkPinYin(String pinYinStr, boolean deleteBlank, String spaceMark) {
String tempStr = pinYinStr;
try {
if (spaceMark == null) {
spaceMark = SPACEMARK;
}
tempStr = PinyinHelper.convertToPinyinString(pinYinStr, spaceMark, PinyinFormat.WITH_TONE_MARK); } catch (Exception e) {
tempStr = pinYinStr;
e.printStackTrace();
}
if (deleteBlank) {
tempStr = tempStr.replaceAll("\\s*", SPACEMARK);
}
return tempStr;
} /**
* 转换为数字声调字符串
* @param pinYinStr 需转换的汉字
* @param deleteBlank 转换后去掉非打印字符
* @param spaceMark 非打印字符
* @return 转换完成的拼音字符串
*/
public static String convertToNumberPinYin(String pinYinStr, boolean deleteBlank, String spaceMark) {
String tempStr = null;
try {
if (spaceMark == null) {
spaceMark = SPACEMARK;
}
tempStr = PinyinHelper.convertToPinyinString(pinYinStr, spaceMark, PinyinFormat.WITH_TONE_NUMBER);
} catch (Exception e) {
tempStr = pinYinStr;
e.printStackTrace();
}
if (deleteBlank) {
tempStr = tempStr.replaceAll("\\s*", SPACEMARK);
}
return tempStr;
} /**
* 繁体转换为简体
* @param pinYinSt
* @param deleteBlank 转换后去掉非打印字符
* @return
*/
public static String convertToSimplified(String pinYinSt, boolean deleteBlank) {
String tempStr = null;
try {
tempStr = ChineseHelper.convertToSimplifiedChinese(pinYinSt);
} catch (Exception e) {
tempStr = pinYinSt;
e.printStackTrace();
}
if (deleteBlank) {
tempStr = tempStr.replaceAll("\\s*", SPACEMARK);
}
return tempStr;
} /**
* 转换为不带音调的拼音字符串
* @param pinYinStr 需转换的汉字
* @param deleteBlank 转换后去掉非打印字符
* @param spaceMark 非打印字符
* @return 拼音字符串
*/
public static String convertToTonePinYin(String pinYinStr, boolean deleteBlank, String spaceMark) {
String tempStr = null;
try {
if (spaceMark == null) {
spaceMark = SPACEMARK;
}
tempStr = PinyinHelper.convertToPinyinString(pinYinStr, spaceMark, PinyinFormat.WITHOUT_TONE);
} catch (Exception e) {
tempStr = pinYinStr;
e.printStackTrace();
}
if (deleteBlank) {
tempStr = tempStr.replaceAll("\\s*", SPACEMARK);
}
return tempStr;
} /**
* 简体转换为繁体
* @param pinYinStr
* @param deleteBlank 转换后去掉非打印字符
* @return
*/
public static String convertToTraditional(String pinYinStr, boolean deleteBlank) {
String tempStr = null;
try {
tempStr = ChineseHelper.convertToTraditionalChinese(pinYinStr);
} catch (Exception e) {
tempStr = pinYinStr;
e.printStackTrace();
}
if (deleteBlank) {
tempStr = tempStr.replaceAll("\\s*", SPACEMARK);
}
return tempStr;
} public static void main(String[] args) {
String str = "重慶 most input \r\n a b c# d";
System.out.println(convertToSimplified(str, true));
System.out.println(checkPinYin('重'));
System.out.println(convertToMarkPinYin(str, true, null));
System.out.println(convertToGetShortPinYin(str, true));
System.out.println(convertToNumberPinYin(str, true, null));
System.out.println(convertToTonePinYin(str, true, null));
System.out.println(convertToTraditional(str, true));
}
}

依赖:

<dependency>

<groupId>com.github.stuxuhai</groupId>

<artifactId>jpinyin</artifactId>

<version>1.1.8</version>

</dependency>

Java-汉字繁体拼音转换的更多相关文章

  1. [转]Java汉字按照拼音排序

    最近项目上使用到汉字排序的问题,网上搜索了一下后普遍使用下面的方法比较. @Test public void test_sort_pinyin() { Collator cmp = Collator. ...

  2. java 汉字转拼音

    先决条件: pinyin4j.jar(Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换.拼音输出格式可以定制.) 下载地址:http://pan.baidu.com/share/l ...

  3. java汉字转拼音以及得到首字母通用方法

    package oa.common.utils;   import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.piny ...

  4. java汉字转拼音的工具类

    import com.google.common.base.Strings;import net.sourceforge.pinyin4j.PinyinHelper;import net.source ...

  5. Java汉字转拼音

    import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCase ...

  6. Android Java汉字转拼音总结

    转载请表明出处:http://blog.csdn.net/lmj623565791/article/details/23187701 开发过程中有时候会遇到使用拼音模糊搜索等功能(典型的就是Andro ...

  7. JAVA汉字转拼音(取首字母大写)

    import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseT ...

  8. 用jpinyin实现汉字转拼音功能

    一.简介 项目地址:https://github.com/stuxuhai/jpinyin JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进. [JPiny ...

  9. 汉字转拼音开源工具包Jpinyin介绍

    最近要实现一个根据词语得到词语对应拼音的功能,找到了Jpinyin这个开源工具包,使用下来发现它非常强大,完全满足我的需求,下面对它做一个简单的介绍,希望能够帮助到有需要的朋友. https://gi ...

随机推荐

  1. 操作系统CPU上下文切换

    关于CPU,有3个重要的概念:上下文切换(context switchs),运行队列(Run queue)和使用率(utilization). 上下文切换: 目前流行的CPU在同一时间内只能运行一个线 ...

  2. jdk1.8新特性之接口default方法

    众所周知,default是java的关键字之一,使用场景是配合switch关键字用于条件分支的默认项.但自从java的jdk1.8横空出世以后,它就被赋予了另一项很酷的能力——在接口中定义非抽象方法. ...

  3. PES包格式

    PES是Packetized Elementary Stream的简称,是将原始ES流打包后形成的,再将PES经过不同的打包方式可以组成MPEG program stream 和 MPEG trans ...

  4. stl map一对多用法

    // stlMap.cpp : Defines the entry point for the console application.//#pragma warning (disable : 478 ...

  5. emacs之配置etags-select

    etags-select比自带的etags定位的更好 ~/emacsConfig/etags-select-setting.el (require 'etags-select) (global-set ...

  6. [转载]树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像

    树莓派新版系统上使用mjpg-streamer获取USB摄像头和树莓派专用摄像头RaspiCamera图像 网上有很多关于mjpg-stream移植到树莓派的文章,大部分还是使用的sourceforg ...

  7. struts2学习(8)struts标签1(数据标签、控制标签)

    一.struts2标签简介: struts标签很多,功能强大,这是优点: 但是缺点的话,性能方面可能会,各方面速度啊啥的会降低:有人比较测试,struts性能比jstl低很多:   二.struts2 ...

  8. 查看Unix/Linux的CPU个数和内存大小,系统位数(转载)

    一.AIX 1.查看CPU数: (1) smtctl 从AIX5.3起,对于power5的机器,系统引入了SMT(Simultaneousmulti-threading)的功能,其允许两个处理线程在同 ...

  9. 使用product_user_profile来实现用户权限的设定

    我们有时候在以普通用户登录SQL*Plus的时候,会碰到下面的错误提示: Error accessing PRODUCT_USER_PROFILE Warning: Product user prof ...

  10. python开发_python中的list操作

    对python中list的操作,大家可以参考: Python list 操作 以下是我个人的笔记: ============================================ Add b ...