1、引入依赖
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
2、具体实现
public Set<String> getFirstChar(String name) {
Assert.state(StringUtils.isNotBlank(name), "名称不能为空");
Set<String> result = new HashSet<>();
char word = name.charAt(0);
// 先判断其是否是汉字
boolean isCH = String.valueOf(word).matches("[\\u4E00-\\u9FA5]+");
if(!isCH){
result.add(String.valueOf(word).toUpperCase());
return result;
}
//提取汉字的首字母
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
if (Objects.isNull(pinyinArray)){
result.add(String.valueOf(word).toUpperCase());
return result;
}
if (pinyinArray.length == 1){
result.add(String.valueOf(pinyinArray[0].charAt(0)).toUpperCase());
return result;
}
for (String s : pinyinArray){
String tmpStr = String.valueOf(s.charAt(0)).toUpperCase();
if (!result.contains(tmpStr)){
result.add(tmpStr);
}
}
return result;
}