java 获取字符串的拼音工具包的使用

java 获取字符串的拼音工具包的使用

使用的是com.github.stuxuhai-jpinyin (GPL协议) ,感谢开源

最近闲来无事 ,发现一个好东西, 就是github上的 jpinyin
然而, 工具包的作者的 https://github.com/stuxuhai/jpinyin 并不能访问, 是404 , 且该包2016年后已经无维护更新了(mvn仓库中)
如果有其他相似的包, 可以留言, 方便看到这篇文章的其他人

这个包可以获取汉字的拼音, 还有音标哦
jpinyin核心类: PinyinHelper

<dependency>
    <groupId>com.github.stuxuhaigroupId>
    <artifactId>jpinyinartifactId>
    <version>1.1.8version>
dependency>
public class PinyinUtil {

    /**
     * 获取str的拼音. ,全小写,无音标
     * 
     * null        => ""
     * "09"        => "09"
     * " as哈"     => "asha"
     * "重楼"      => "zhongchonglou"
     * 
* * @param str 要转换成拼音的字符串,Nullable,特殊字符也行 * @return str的拼音, 全小写, 无音标 */
public static String toPinyin(@Nullable String str) { return toPinyin(str, null); } /** * 获取str的拼音. ,全小写,无音标 *
     * null         => ""
     * ""           => ""
     * " as哈"      => "asha"
     * "重楼"       => "zhongchonglou"
     * 
* * @param str 要转换成拼音的字符串,Nullable,特殊字符也行 * @param length 返回的string的最大长度.安全,无异常. * @return str 的拼音,全小写,无音标, 且 str.length <= length */
public static String toPinyin(@Nullable String str, Integer length) { String s = StringUtils.replace(str, " ", ""); if (StringUtils.isBlank(s)) { return StringUtils.EMPTY; } char[] chars = s.toCharArray(); StringBuilder sb = new StringBuilder(str.length() * 5); for (char c : chars) { String[] strings = PinyinHelper.convertToPinyinArray(c, PinyinFormat.WITHOUT_TONE); sb.append(strings.length == 0 ? c : StringUtils.join(strings)); } String result = sb.toString(); if (length != null) { result = StringUtils.substring(result, 0, length); } return result; } /** * 获取拼音首字母缩略词, 全小写. *
     * null  => ""
     * ""    => ""
     * "12"  =>  "12"
     * "重楼" => "zcl"
     * 
* * @param str 传什么都行 * @param length 返回拼音首字母缩略词的的最大长度 * @return 缩拼音首字母略词 */
public static String toShortPinyin(@Nullable String str, Integer length) { str = StringUtils.trimToEmpty(str); if (!StringUtils.isBlank(str)) { try { String shortPinyin = PinyinHelper.getShortPinyin(str); if (length != null) { return StringUtils.substring(shortPinyin, 0, length); } else { return shortPinyin; } } catch (PinyinException e) { return StringUtils.EMPTY; } } return ""; } }

你可能感兴趣的:(Java)