pinyin4j
pinyin4j copied to clipboard
返回值存在一点小问题
代码: private static final HanyuPinyinOutputFormat HANYU_PINYIN_OUTPUT_FORMAT = new HanyuPinyinOutputFormat();
static {
HANYU_PINYIN_OUTPUT_FORMAT.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
HANYU_PINYIN_OUTPUT_FORMAT.setCaseType(HanyuPinyinCaseType.LOWERCASE);
HANYU_PINYIN_OUTPUT_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
}
public static String getPinYinChar(String str) { try { return PinyinHelper.toHanYuPinyinString(str, HANYU_PINYIN_OUTPUT_FORMAT, " ", false); } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) { throw new GlobalSystemException(badHanyuPinyinOutputFormatCombination.getMessage(), badHanyuPinyinOutputFormatCombination); } } 测试: @Test public void getPinYinChar(){ String s = PinYinUtil.getPinYinChar("大鱼吃小鱼,杨幂是个女的"); System.out.println(s); }
输出结果: da yu chi xiao yu yang mi shi ge nüde bug描述: separate我使用的是一个空格,返回值最后 [ 女的] 的拼音未使用separate 进行拼接 感谢开源
这个库很久没维护了,来这里一起助力吧:https://github.com/wnjustdoit/pinyin4j
参考 issues 28 提到的 汉语拼音正词法基本规则,实际上返回值是正确的,读一下这个基本规则应该就能理解了。
参考 issues 28 提到的 汉语拼音正词法基本规则,实际上返回值是正确的,读一下这个基本规则应该就能理解了。
那可不是这个问题,这个bug我已经修复了(你可以试试任意的句子,都可以正常分割的):https://github.com/wnjustdoit/pinyin4j/blob/master/src/test/java/net/sourceforge/pinyin4j/test/NewPinyinHelperTest.java
参考 issues 28 提到的 汉语拼音正词法基本规则,实际上返回值是正确的,读一下这个基本规则应该就能理解了。
那可不是这个问题,这个bug我已经修复了(你可以试试任意的句子,都可以正常分割的):https://github.com/wnjustdoit/pinyin4j/blob/master/src/test/java/net/sourceforge/pinyin4j/test/NewPinyinHelperTest.java
用的你库试了一下,确实没有出现最后两个中文字符中间未拼接分隔符的现象。