Java 从文件中确定偶数

Java 从文件中确定偶数,java,file-io,Java,File Io,你好,先生。我的老师告诉我们从输入文件中取出所有的偶数。但偶数一直告诉我是23个偶数,应该是8和66.67%。我在文件中的输入是: 5 7 2 8 9 10 12 98 7 14 20 22(带空格) 我的代码是: import java.io.*; import java.util.*; public class number2 { public static void main (String[] args) throws FileNotFoundException{

你好,先生。我的老师告诉我们从输入文件中取出所有的偶数。但偶数一直告诉我是23个偶数,应该是8和66.67%。我在文件中的输入是:

5 7 2 8 9 10 12 98 7 14 20 22(带空格)

我的代码是:

import java.io.*;

import java.util.*;

public class number2 {

    public static void main (String[] args) throws FileNotFoundException{
        Scanner input = new Scanner(new File("number.txt"));
        int sum = 0;
        int count = 0;
        int evenCount = 0;
        float percent = 0;
        while(input.hasNextInt()) {
            int num = input.nextInt();
            sum+=num;
            count++;
            evenCount = evenNumber(num, count);
        }
        percent = (evenCount*100)/count;
        System.out.println("\n" +count + " Numbers, " + "Sum = " +sum);
        System.out.println( evenCount + " evens " +"(" + percent +"%)");   
    }

    public static int evenNumber(int counter, int number){
        if(number%2==0)
            counter++;
        return counter;

    }  
}

我想您正在使用切换参数调用
evenNumber
方法

while(input.hasNextInt()){
    int num = input.nextInt();
    sum+=num;
    count++;
    //first parameter is number read from file, second parameter is the current count
    evenCount = evenNumber(num, count);}
    //...
在您的方法上
evenNumber
您拥有的方法签名

//first parameter is the counter, second parameter is the read number
public static int evenNumber(int counter, int number)
您应该切换while块中的
evenNumber
方法内调用的参数:
evenCount=evenCount(evenCount,num)

此外,您应该将
evenCount
传递给
evenNumber
方法而不是count,否则您将增加所有数字的计数,而不是仅增加偶数的计数