You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何按指定字符位置对ArrayList字符串元素排序

按指定字符位置规则排序字符串类型ArrayList

排序规则(以字符C为例)

  • 第一优先级:字符C出现在单词开头,排在队列最前
  • 第二优先级:字符C出现在单词中间位置,排在中间顺位
  • 第三优先级:字符C出现在单词末尾,排在队列最后

测试用例说明:初始列表添加元素doctor、basic、car,预期排序结果为 car(C开头)、doctor(C在中间)、basic(C在末尾)

实现代码

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class CustomSortDemo {
    public static void main(String[] args) {
        List<String> strList = new ArrayList<String>();
        strList.add("doctor");
        strList.add("basic");
        strList.add("car");

        // 定义排序参照的目标字符
        char target = 'c';
        // 自定义比较器按规则排序
        strList.sort(Comparator.comparingInt(item -> {
            String lowerItem = item.toLowerCase();
            int charIndex = lowerItem.indexOf(target);
            int len = lowerItem.length();
            if (charIndex == 0) {
                return 0;
            }
            if (charIndex == len - 1) {
                return 2;
            }
            return 1;
        }));

        // 打印排序结果
        System.out.println(strList);
    }
}

运行结果

代码执行后输出为[car, doctor, basic],完全符合预期排序逻辑。如果需要更换参照字符,只需要修改target变量的赋值即可。

内容的提问来源于stack exchange,提问作者CBRrider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.05 16:15:45