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

Java如何从ArrayList中提取指定参数col_c?

提取字符串中col_c字段值的解决方案

方法一:使用正则表达式直接匹配

由于每个字符串元素都包含col_c = "xxx"的固定格式,我们可以用正则表达式精准捕获引号内的目标值,代码实现如下:

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ColCExtractor {
    // 预编译正则表达式,提升重复匹配效率
    private static final Pattern COL_C_PATTERN = Pattern.compile("col_c = \"([^\"]+)\"");

    public static void main(String[] args) {
        List<String> data = new ArrayList<>();
        data.add("{col_a = {\"a\":1,\"b\":2}, col_a = {\"a\":1,\"b\":2}, col_c = \"test\"}");
        data.add("{col_a = {\"a\":1,\"b\":2}, col_a = {\"a\":1,\"b\":2}, col_c = \"test1\"}");

        for (String item : data) {
            Matcher matcher = COL_C_PATTERN.matcher(item);
            if (matcher.find()) {
                // 捕获组1对应col_c的具体值
                System.out.println(matcher.group(1));
            }
        }
    }
}

运行后输出:

test
test1

方法二:转换为标准JSON后解析

如果后续需要处理更多字段,建议先将非标准字符串转换为标准JSON格式,再借助JSON库解析。这里以Gson为例:

  1. 引入Gson依赖(Maven示例):
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.10.1</version>
</dependency>
  1. 代码实现:
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import java.util.ArrayList;
import java.util.List;

public class ColCExtractor {
    public static void main(String[] args) {
        List<String> data = new ArrayList<>();
        data.add("{col_a = {\"a\":1,\"b\":2}, col_a = {\"a\":1,\"b\":2}, col_c = \"test\"}");
        data.add("{col_a = {\"a\":1,\"b\":2}, col_a = {\"a\":1,\"b\":2}, col_c = \"test1\"}");

        for (String item : data) {
            // 将非标准的"键 = 值"格式替换为JSON标准的"键": 值格式
            String standardJson = item.replaceAll("(\\w+) = ", "\"$1\": ");
            // 解析为JSON对象
            JsonObject jsonObj = JsonParser.parseString(standardJson).getAsJsonObject();
            // 提取col_c的值
            System.out.println(jsonObj.get("col_c").getAsString());
        }
    }
}

注:原字符串存在重复的col_a键,JSON解析时会保留最后一次出现的键值对,但不影响col_c的提取。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:20:23