Java如何在ArrayList

时间:2017-11-17 08:19:50

标签: java

我在ArrayList中有一些动态值

ClassnameOne <!----Begin---->
Classnametwo <!----Begin---->
Classnamethree <!----Begin---->
Classnamethree <!----End---->
Classnametwo <!----End--->
ClassnameOne <!----End---->

我想要做的是获取元素的开始出现以及何时结束。因此,例如ClassnameOne将为5,Classnametwo将为3。 这是我到目前为止所做的:

ArrayList<String> one = new ArrayList<String>();
for (int i = 0; i < one.size(); i++) {
    if(one.get(i).contains("<!----End---->") && one.get(i).equals(one.get(i+1))) {
        break;
    } else {
        count++;
        System.out.println(one.get(i));
    }
    System.out.println(count);
}

这没有给出正确的答案。你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

ArrayList<String> one = new ArrayList<String>();
for (int starti = 0; starti < one.size(); ++starti) {
    String[] words = one.get(starti).split(" ", 2);
    if (words[1].equals("<!----Begin---->")) {
        int n = 0;
        String sought = words[0] + " " + "<!----End---->";
        for (int endi = starti + 1; endi < one.size(); ++endi) {
            if (one.get(endi).equals(sought) {
                n = endi - starti;
                break;
            }
        }
        System.out.printf("%s at %d covers %d lines.%n", words[0], starti, n);
    }
}

假设名称不重复,否则将需要堆栈(或类似)。