提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
项目中需要通过组织名称获取对应的简拼,便写了一个工具类,其实也是简单的调用
一、Pinyin4j 简介
Pinyin4j 是一个流行的 Java 库,支持汉字和最流行的拼音系统之间的转换。拼音的输出格式可以自定义。 我们使用只需要调用即可。
官网地址:http://pinyin4j.sourceforge.net/
二、使用步骤
1.引入依赖
代码如下(示例):
<!-- 中文转拼音 -->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
2.具体实现
引入依赖后,可以直接复制下面代码,作为工具类,直接调用即可,这种没法分辨多音字,有需要可以去官网查看最新的接口
代码如下(示例):
public class SpellingUtil {
/**
* 得到 全拼
*
* @param word
* @return
*/
public static String getPingYin(String word) {
if (word == null || "".equals(word)) {
return "";
}
char[] codes = word.toCharArray();
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
outputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
String result = "";
try {
for (int i = 0; i < codes.length; i++) {
// 判断是否为汉字字符
if (java.lang.Character.toString(codes[i]).matches("[\\u4E00-\\u9FA5]+")) {
String[] allPinyin = PinyinHelper.toHanyuPinyinStringArray(codes[i], outputFormat);
// 多音字默认取第一个
result += allPinyin[0];
} else {
result += java.lang.Character.toString(codes[i]);
}
}
return result;
} catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
}
return result;
}
/**
* 得到中文首字母
*
* @param word
* @return
*/
public static String getPinYinHeadChar(String word) {
if (word == null || "".equals(word)) {
return "";
}
String result = "";
for (int i = 0; i < word.length(); i++) {
char code = word.charAt(i);
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(code);
if (pinyinArray != null) {
result += pinyinArray[0].charAt(0);
} else {
result += code;
}
}
return result;
}
public static void main(String[] args) {
String cnStr4 = "省";
System.out.println("全拼: " + getPingYin(cnStr4));
System.out.println("简拼: " + getPinYinHeadChar(cnStr4));
}
}
总结
这样子就轻松完成啦,有用点个赞吧!