中文名称,按照A-Z方式进行排序。
import cn.hutool.extra.pinyin.PinyinUtil;
import com.alibaba.nacos.client.utils.StringUtils;
import org.apache.commons.collections.CollectionUtils;
import java.text.Collator;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class TextUtils {
/**
* 数字排在最前,英文字母其次,汉字则按照拼音进行排序
*/
public static List<String> compareTo(List<String> stringList) {
if (CollectionUtils.isEmpty(stringList)) {
return Collections.emptyList();
}
Comparator<String> comparator = (text, texts) -> {
Collator collator = Collator.getInstance(java.util.Locale.CHINESE);
return collator.getCollationKey(text).compareTo(
collator.getCollationKey(texts));
};
Collections.sort(stringList, comparator);
return stringList;
}
/**
* 获取中文首字母
* @param str
* @return
*/
public static String getInitials(String str){
if(StringUtils.isEmpty(str)){
return "#";
}
String letter = PinyinUtil.getFirstLetter(str.substring(0, 1),"");
return letter.toUpperCase();
}
// public static void main(String[] args) {
// List<String> list = new ArrayList<>();
// list.add("360");
// list.add("Access");
// list.add("百度");
// list.add("民生");
// System.out.println(JSON.toJSONString(compareTo(list)));
// System.out.println(getInitials("民生"));
// }
}
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.10</version>
</dependency>
<!--pinying4j-->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>