pinyin4j
pinyin4j copied to clipboard
输出拼音缺少分隔符
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat(); outputFormat.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER); outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); outputFormat.setVCharType(HanyuPinyinVCharType.WITH_V); String pinyin = PinyinHelper.toHanYuPinyinString("一日千里", outputFormat, " ", true); System.out.println(pinyin);
输出: yi1 ri4 qian1li3
同样遇到该问题,有些词语出现分隔符失效的问题,拼音没有分隔开。
同样遇到该问题,有些词语出现分隔符失效的问题,拼音没有分隔开
同样遇到该问题,请问有解决办法吗?
这个库很久没维护了,来这里一起搞吧:https://github.com/wnjustdoit/pinyin4j
我也被这个bug坑到了,原因是插入分隔符的时候逻辑判断有问题,多个汉字最后两个汉字的分隔符没有插入导致的。
hutool的解决办法是:
// 添加一个后缀是为了解决Pinyin4j的bug,在指定分隔符后,最后两个词的分隔符失效
str += " ";
String result;
try {
result = PinyinHelper.toHanYuPinyinString(str, format, separator, true);
} catch (BadHanyuPinyinOutputFormatCombination e) {
throw new PinyinException(e);
}
return result.substring(0, result.length()-1);
我也被这个bug坑到了,原因是插入分隔符的时候逻辑判断有问题,多个汉字最后两个汉字的分隔符没有插入导致的。
hutool的解决办法是:
// 添加一个后缀是为了解决Pinyin4j的bug,在指定分隔符后,最后两个词的分隔符失效 str += " "; String result; try { result = PinyinHelper.toHanYuPinyinString(str, format, separator, true); } catch (BadHanyuPinyinOutputFormatCombination e) { throw new PinyinException(e); } return result.substring(0, result.length()-1);
我已经修复了内部逻辑,https://github.com/wnjustdoit/pinyin4j/blob/master/src/test/java/net/sourceforge/pinyin4j/test/NewPinyinHelperTest.java
我也被这个bug坑到了,原因是插入分隔符的时候逻辑判断有问题,多个汉字最后两个汉字的分隔符没有插入导致的。 hutool的解决办法是:
// 添加一个后缀是为了解决Pinyin4j的bug,在指定分隔符后,最后两个词的分隔符失效 str += " "; String result; try { result = PinyinHelper.toHanYuPinyinString(str, format, separator, true); } catch (BadHanyuPinyinOutputFormatCombination e) { throw new PinyinException(e); } return result.substring(0, result.length()-1);
我已经修复了内部逻辑,https://github.com/wnjustdoit/pinyin4j/blob/master/src/test/java/net/sourceforge/pinyin4j/test/NewPinyinHelperTest.java
没有提交maven中央库,用户没法用哎。
我也被这个bug坑到了,原因是插入分隔符的时候逻辑判断有问题,多个汉字最后两个汉字的分隔符没有插入导致的。 hutool的解决办法是:
// 添加一个后缀是为了解决Pinyin4j的bug,在指定分隔符后,最后两个词的分隔符失效 str += " "; String result; try { result = PinyinHelper.toHanYuPinyinString(str, format, separator, true); } catch (BadHanyuPinyinOutputFormatCombination e) { throw new PinyinException(e); } return result.substring(0, result.length()-1);
我已经修复了内部逻辑,https://github.com/wnjustdoit/pinyin4j/blob/master/src/test/java/net/sourceforge/pinyin4j/test/NewPinyinHelperTest.java
没有提交maven中央库,用户没法用哎。
<dependency>
<groupId>io.github.wnjustdoit</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.6.0</version>
</dependency>