从列表中提取多个块
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));
}
}
我有一个字符串列表,如下所示;
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));
}
}