pinyin4j把中文句子(含有多音字字母)转成拼音(二维数组递归求所有组合情况返回list)算法实现!

介绍

       Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制,然而真正的把含有多音字、数字、字母的中文句子转成拼音得到所有的组合情况却有很大难度,我看过很多有关博客或者帖子,被广大网友视为它的短板和不足,很多网友哀声叹气不能真正得到所有组合情况,一部分也只是用简单循环得到中文句子的拼音组合情况的一种,鄙人利用业余时间研究了研究,把研究结果分享 出来,下边将带大家循序渐进把含有多音字、数字、字母的中文句子转成拼音得到所有的组合情况。

最简单方式获取汉字的拼音

                char word='长';//待测汉字,多音字
		
		/*直接获取拼音,返回字符串数组,可能有多个,注意:如果传入的非汉字则返回null*/
		String[] easyPinyin=PinyinHelper.toHanyuPinyinStringArray(word);
		for(String s:easyPinyin){
			System.out.println("汉字转拼音最简单方式:"+s);//有2个zhang3,chang2,后边的数字代表音调
		}

       运行结果如下:

汉字转拼音最简单方式:zhang3
汉字转拼音最简单方式:chang2


以指定的拼音格式获取汉字的拼音

                HanyuPinyinOutputFormat pinyinFormat = new HanyuPinyinOutputFormat();	//创建拼音输入格式类
		pinyinFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);//指定格式中的大小写属性为小写
		pinyinFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);//指定音标格式无音标
		pinyinFormat.setVCharType(HanyuPinyinVCharType.WITH_V);//指定用v表示ü
		String[] formatPinyin=null;
		try {
			formatPinyin = PinyinHelper.toHanyuPinyinStringArray(word, pinyinFormat);//获取对应的汉字拼音,不是汉字返回null
		} catch (BadHanyuPinyinOutputFormatCombination e) {//会抛出异常,捕获异常
			//logger.error(e.getMessage());
			e.printStackTrace();
		}
		for(String s:formatPinyin){
			System.out.println("格
  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值