使用 java 中的文本文件求一组和 class 的平均值

Find the avg of a set and the class using a text file in java

class 的标记存储在名为“marks3.txt”的文本文件中。标记以下列格式保存:第一个数字表示在每行文本中顺序存储的(两位数)标记总数。每行文本代表一组标记。

例如(txt 文件将包含以下数字) 4567687509 569563

分数是:

45%、67%、68%、75%、9%

56%、95%、63%

编写一个方法来计算每组分数的平均值以及总平均值。

下面是我创建的代码,我对如何循环遍历文件直到我得到构成标记的两个数字感到困惑。我坚持的另一件事是如何调用该方法。

import java.io.*;


public class ReadFile {


public static int calcAvg (String x) throws IOException {
    int avg = 0;
    int count = 0;
    
    
    FileReader fr = new FileReader ("/home/sharma6a/marks.txt");
    BufferedReader br = new BufferedReader (fr);
    
    while ((x = br.readLine()) != null) {
        if (count <= 2) {
            
        }
    }
    
    br.close();
    
    return avg;
}

就这么简单。您实际上希望人们为您做事,但这是一个问答网站。在这里您将看到一些用于获取各个百分比的代码。你会想出剩下的。

File f = new File(path);
try {

  Scanner scanner = new Scanner(f);
  String line = scanner.nextLine();
  for (int i = 0; i < line.length() - 1; i+=2) {

    double percentage = Double.parseDouble(line.substring(i, i+2)) / 100.0;

  }

} catch (Exception e) {e.printStackTrace();}

考虑像

这样的输入文件
45676875
09569563

首先我会有一个方法来读取文件并将其转换成更好的结构来使用。

   public List<Integer> readFile() throws FileNotFoundException {
    List<Integer> numbers = new ArrayList<>();
    String line = "";
    try {
        FileReader fr = new FileReader("src/main/resources/numbers.txt");
        BufferedReader br = new BufferedReader(fr);

        while ((line = br.readLine()) != null) {
            for (int i = 0; i <= line.length() - 2; i+=2) {
                char[] chars = line.toCharArray();
                int number = Integer.parseInt(String.valueOf(chars[i]) + String.valueOf(chars[i+1]));
                numbers.add(number);
            }
        }
    } catch (Exception e) {
        System.out.println(e);
    }
    return numbers;
}

那我就有计算AVG的方法了

public float calcAvg(List<Integer> numbers) throws IOException {
        int sum = 0;
        for (int number: numbers){
            sum+= number;

        }
        return sum/(numbers.size());
    }

当然,你需要一个启动方法来让事情发生

类似

public void init() throws IOException {
    List<Integer> numbers = readFile();
    float result = calcAvg(numbers);
    System.out.println(result);

}