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. 微软Enterprise Library 4.1和Unity 1.2

    说明 微软模式与实践团队今天发布了Enterprise Library 4.1和Unity 1.2版本,这次发布的主要新特性如下: 1. 支持Visual Studio 2008 SP1 2. Uni ...

  2. 如何查看你的 FastAdmin 服务器是否开启了 gzip br 压缩

    如何查看你的 FastAdmin 服务器是否开启了 gzip 压缩 gzip br 压缩的好处不用多说了. 但是怎么方便的知道网站到底有没有开启或使用了 gzip 呢,其实只要在浏览器就可以看到. 按 ...

  3. MDK警告 warning: #111-D: statement is unreachable

    解析: "statement is unreachable"这句一般是说编译器认为程序执行不到这里. 因为本人运行程序的时候,再向前有一个While(1)循环, 理论上说除非你里面 ...

  4. 页面加载完之后在执行js代码

    把代码写在 window.onload = function () { //js代码 //此处js代码是页面完全加载完之后执行 } 即可. 例: <script type="text/ ...

  5. Go编译安装

    go编译安装: 设置环境变量 # sudo vim /etc/profile.d/go export GOROOT=/home/evescn/go export PATH=$PATH:$GOROOT/ ...

  6. GNU Radio: 自定义 block 实例

    综述 本文通过在GNU Radio 中编写一个block的例子,系统介绍创建一个block的过程.该 block 的功能是可以在GRC中通过滑块(WX GUI Slider)来实时改变信号源(Sign ...

  7. OPCClient和OPCServer在Windows上运行方式的恩怨

    http://www.diangon.com/wenku/PLC/201504/00021970.html 近段时间,遇到不少人都被OPCClient与OPCServer之间的通讯搞得头大,通过几次远 ...

  8. 引用 LPSTR、LPCSTR、LPTSTR、LPCTSTR、LPWSTR及LPCWSTR的意义及区别

    1.ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式.ANSI表示英文字母时就和ASCII一样,但表示其他文字时就需要用多字节.   2.Unicode:用两个字节表示一个字符 ...

  9. qt下用启动图

    void showSplash(void) { QSplashScreen*splash=newQSplashScreen; splash->setPixmap(QPixmap(":/ ...

  10. Eclipse中设置JDK、${user}变量

    为eclipse设置jdk方法: 两个方法: 1.设置PATH路径-eclipse自动会查找! 2.在快捷方式中加上参数:-VM java虚拟机路径 Eclipse中设置${user}变量 在Ecli ...