从列表中提取多个块

Extract multiple blocks from a List

我有一个字符串列表,如下所示;

List list  =["BeginA","1","2","EndA","BeginB","3","EndB","BeginA","4","5";"6","EndA";"BeginC","EndC","BeginA","7","EndA"]

我需要从上面的列表中提取一个子列表,其中包含由 "BeginA" 和 "EndA" 的所有块形成的块,所以结果将是这样的:

list sublist =["BeginA","1","2","EndA","BeginA","4","5";"6","EndA","BeginA","7","EndA"]

我的初始列表可以包含 "BeginA" 和 "EndA" 的多个 (n) 块,它们都是连续的,没有嵌套块,每个开始块之后都有它的结束块。

我使用了 java.util.list 属性 "indexOf" 和 "lastIndexOf" 但是通过这种方式,我只能提取两个块。

有没有办法全部提取出来

谢谢

  • 遍历数组
    • 如果当前项目是BeginA,设置一个标志
    • 如果设置了标志,则将当前项复制到结果数组中
    • 如果当前项目是 EndA,取消设置标志

试试这个:

for (int i = 0; i < list.size(); i++) {
    if (list.get(i).equals("BeginA")) {
        while (!list.get(i).equals("EndA"))
            sublist.add(list.get(i++));
        sublist.add(list.get(i));
    }
}