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

如何将格式为2022{yyyy}{mm}{dd}的字符串分割为ArrayList?

Java字符串分割实现方案

针对将字符串 "2022{yyyy}{mm}{dd}" 分割为包含 2022、yyyy、mm、dd 的 ArrayList,可以用以下两种常用方法实现:

方法一:正则表达式分割

利用正则匹配 { 或 } 作为分隔符,分割后过滤掉空字符串即可:

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

public class StringSplitDemo {
    public static void main(String[] args) {
        String line = "2022{yyyy}{mm}{dd}";
        // 按{或}分割,同时过滤空字符串
        String[] parts = line.split("[{}]");
        List<String> resultList = new ArrayList<>(Arrays.asList(parts));
        // 移除分割后产生的空元素
        resultList.removeIf(String::isEmpty);
        
        // 输出结果
        for (String item : resultList) {
            System.out.println(item);
        }
    }
}

运行后输出:

2022
yyyy
mm
dd

方法二:手动遍历提取

如果不想依赖正则,也可以手动遍历字符串,逐个字符判断并提取目标内容:

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

public class StringExtractDemo {
    public static void main(String[] args) {
        String line = "2022{yyyy}{mm}{dd}";
        List<String> resultList = new ArrayList<>();
        StringBuilder current = new StringBuilder();
        
        for (char c : line.toCharArray()) {
            if (c == '{' || c == '}') {
                if (current.length() > 0) {
                    resultList.add(current.toString());
                    current.setLength(0);
                }
            } else {
                current.append(c);
            }
        }
        // 处理最后一段未被包裹的内容
        if (current.length() > 0) {
            resultList.add(current.toString());
        }
        
        // 输出结果
        for (String item : resultList) {
            System.out.println(item);
        }
    }
}

这个方法通过遍历每个字符,遇到{或}时就把当前积累的字符串加入列表,最终也能得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 12:35:18