【问题标题】:Extract multiple blocks from a List从列表中提取多个块
【发布时间】:2020-08-10 20:33:34
【问题描述】:

我有一个这样的字符串列表;

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"]

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

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

有没有办法把它们全部提取出来。

谢谢

【问题讨论】:

    标签: java string list extract


    【解决方案1】:

    试试这个:

    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));
        }
    }
    
    

    【讨论】:

      【解决方案2】:
      • 循环遍历数组
        • 如果当前项目是BeginA,设置一个标志
        • 如果设置了标志,则将当前项复制到结果数组中
        • 如果当前项目是EndA,则取消设置标志

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多