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

如何从String类型ArrayList中无需指定索引获取两个ID条目之间的内容

实现思路

  • 先遍历列表定位到目标ID所在的下标
  • 从目标下标的下一位开始收集元素,直到遇到下一个包含ID:的元素或者列表遍历结束为止

Java 实现代码

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

public class IdContentExtractor {
    public static List<String> getContentAfterId(List<String> originList, String targetId) {
        List<String> result = new ArrayList<>();
        // 第一步:定位目标ID的位置
        int startIndex = -1;
        for (int i = 0; i < originList.size(); i++) {
            if (originList.get(i).equals(targetId)) {
                startIndex = i;
                break;
            }
        }
        // 没找到目标ID直接返回空结果
        if (startIndex == -1) {
            return result;
        }
        // 第二步:收集目标ID之后到下一个ID之前的内容
        for (int i = startIndex + 1; i < originList.size(); i++) {
            String currentStr = originList.get(i);
            // 遇到下一个ID条目就终止遍历
            if (currentStr.contains("ID:")) {
                break;
            }
            result.add(currentStr);
        }
        return result;
    }

    public static void main(String[] args) {
        // 测试用的原始列表
        List<String> list = new ArrayList<>();
        list.add("ID: 12");
        list.add("Term: Banana");
        list.add("Definition = yellow fruit");
        list.add("ID: 14");
        list.add("Term: Apple");
        list.add("Definition = green fruit");
        list.add("Description = Beautiful fruit");
        list.add("ID: 16");
        list.add("Term: Melon");
        list.add("Definition = yellow fruit");
        
        // 获取ID:14对应的内容
        List<String> content = getContentAfterId(list, "ID: 14");
        // 输出结果
        for (String s : content) {
            System.out.println(s);
        }
    }
}

运行输出

Term: Apple
Definition = green fruit
Description = Beautiful fruit

扩展优化

如果不需要传入完整的ID: xx字符串,只需要传入ID数值即可查询,可以修改定位目标ID的判断逻辑:

// 原判断条件替换为,targetId改为int类型参数
if (originList.get(i).startsWith("ID: ") 
    && originList.get(i).split(": ")[1].equals(String.valueOf(targetId))) {
    startIndex = i;
    break;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:15:01