我有一个程序可以捕获包含布尔值的文件,并且我在计算假值的数量,直到达到真值为止。然后,当遇到另一个错误值时,它将再次对其计数。对于错误值的数量,我有一个较低的阈值和较高的阈值,并且在此范围内,我只需要递增一次计数器。顺便说一下,这不是一项家庭作业。

private static int readBooleanValues(File textFile, int higher, int lower) throws FileNotFoundException {
    Scanner scanner = new Scanner (textFile);
    int counter = 0;
    int secondaryCounter = 0;
    while ( scanner.hasNext() ) {
        String value = scanner.next();
        if ( value.equalsIgnoreCase("false") ) {
            counter++;
            if ( counter >= lower && counter <= higher ) {
                secondaryCounter++;
            }
        } else if ( value.equalsIgnoreCase("true") ) {
            counter = 0;
        }
    }
    return secondaryCounter;
}

最佳答案

如果我正确理解了您的问题,则您想要执行@WonderWorld建议的操作,并替换

if ( counter >= lower && counter <= higher ) {
    secondaryCounter++;
}


通过

if (counter == lower)
    secondaryCounter++;
if (counter == higher+1)
    secondaryCounter--;


第一次进入范围时,此值仅递增一次secondaryCounter。如果以后发现false值的字符串太长(当counter到达higher+1时),将更正secondaryCounter的值。

09-30 12:00