数字排在最前,英文字母其次,汉字则按照拼音进行排序,获取中文首字母

中文名称,按照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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值