计算 ArrayList 中 true 之前的 false 数量 (Java)

Counting the number of falses before a true in an ArrayList (Java)

我正在尝试计算 Java 中 ArrayList 中每个 true 之前的 false 数量。

例如,如果我有 [true, false, false, true, true] 我会得到 [0,2,0]

如果列表末尾的 false 后面没有跟真,则不算数

所以如果我有 [false, true, false, false] 我会得到 [1]

我试过这个:

int incorrect_attempts = 0;
        ArrayList<Integer> falses_before_a_true = new ArrayList<Integer>();

        for (int i=0;i<=attempts_list.size()-1;i++){
            if (attempts_list.get(i).equals("false"))
                incorrect_attempts++;
            else
                falses_before_a_true.add(incorrect_attempts);


        }

但我会得到 [1, 1, 1] [false, true, true, true] 应该 return [1,0,0]

我想当有两个连续的 true 时,我应该重置 incorrect_attempts 计数器,但不知道该怎么做。

感谢任何帮助。谢谢!

当你得到 true 时,你需要将 incorrect_attempts 重置为 0。所以改变这个:

        else
            falses_before_a_true.add(incorrect_attempts);

    else {
        falses_before_a_true.add(incorrect_attempts);
        incorrect_attempts = 0;
    }