使用 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);
}
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);
}