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