1、需要依赖
<dependencies>
<!-- 中文拼音 -->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
<!-- 日志 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
</dependencies>
2、主要代码:
public class PinyinUtil {
private static final Logger logger = LoggerFactory.getLogger(PinyinUtil.class);
public static String getCamelPinYin(String hz, boolean type) {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
format.setVCharType(HanyuPinyinVCharType.WITH_V);
String m;
StringBuilder r = new StringBuilder();
try {
for (char value : hz.toCharArray()) {
if (Character.toString(value).matches("[\\u4E00-\\u9FA5]+")) {
m = PinyinHelper.toHanyuPinyinStringArray(value, format)[0];
} else {
m = Character.toString(value);
}
if (type) {
r.append(m.substring(0, 1).toUpperCase()).append(m.substring(1));
} else {
r.append(m);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
logger.error(e.getMessage(), e);
}
return r.toString();
}
public static String getPinYinHeadChar(String hz, boolean type) {
StringBuilder r = new StringBuilder();
String s = "";
for (char v : hz.toCharArray()) {
if (Character.toString(v).matches("[\\u4E00-\\u9FA5]+")) {
s = PinyinHelper.toHanyuPinyinStringArray(v)[0];
} else {
s = Character.toString(v);
}
r.append(s != null ? s.substring(0, 1) : null);
}
return type ? r.toString().toUpperCase() : r.toString();
}
public static void main(String[] args) {
String str = "中國 chinese";
String getCamelPinYin = getCamelPinYin(str, true);
String getPinYinHeadChar = getPinYinHeadChar(str, false);
System.out.println(getCamelPinYin);
System.out.println(getPinYinHeadChar);
}
}
3、运行结果
![运行结果](https://i-blog.csdnimg.cn/blog_migrate/00331ca31cee5ca4cb7c109ab3678a7b.png)