Как получить количество входных значений из текстового файла в Java SE?


Я студент первого семестра информатики, изучаю Python и Java.

Тема: интерпретатор извлекает входные данные из текстового файла и складывает их все вместе, а затем находит среднее значение.

У меня есть часть вниз прекрасно, где программа добавляет их все вместе (я использую double, x), моя проблема заключается в том, что я хочу выяснить, как заставить интерпретатор считать фактическое количество значений x, которые существуют в текстовом файле. Конечно, я могу легко собрать их вместе, пересчитав их и ввод фиксированного значения для делителя, используемого для нахождения среднего, но я хочу, чтобы программа сделала это так, чтобы если в указанном текстовом файле есть другое количество значений x, программа могла адаптироваться.

Это мой первый вопрос о переполнении стека, поэтому я, возможно, не так конкретен в деталях, как некоторые более опытные программисты, но я горю желанием учиться. Ранее я программировал более сложные программы на Python, поскольку это наш основной язык (даже там программы относительно просты, когда по сравнению с чем-то, сделанным опытным программистом). Java (как многие из вас хорошо знают) сильно типизирована, и это моя первая настоящая программа, которую я пишу на этом языке.

Ниже приведен мой код в IDE NetBeans 8.0.1:

/*
Purpose: Read real numbers from a file and print to the console only those
numbers which are greater than the mean of the numbers in the file.
Author: Brent McDonald
Date: 26 November 2014
Class: CSC 200 - 001W
 */
package homework.pkg23.average;

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;

public class Homework23Average {

    public static void main(String[] args) {

        double MEAN;
        double x;
        double y = 0;
        Scanner inputStream = null;

        try {
            inputStream = new Scanner (new File ("RawData.txt"));
        }
        catch (FileNotFoundException e) {
            System.out.println ("File not found, program aborted:");
            System.exit (1);
        }
        while (inputStream.hasNextDouble ()) {
            x = inputStream.nextDouble ();
            y += x;
            System.out.println (x);
        }
        System.out.println ("This is the sum of all x values: " + y);
2 2

2 ответа:

Просто подсчитайте количество двойников, а затем вычислите среднее значение, как только вы закончите сканирование файла.

int count = 0;
while (inputStream.hasNextDouble ()) {
        count ++;
        x = inputStream.nextDouble ();
        y += x;
        System.out.println (x);
}
// divide y by count for the mean

Добавьте переменную int count, а затем в цикле while увеличьте число.