java - 将文本文件中的名称与数字分开
问题描述
我想要做的是读取一个看起来像这样的文本文件:
Tom 96 95 94 93 54
并将名称和数字分开。然后我将打印学生的姓名总分(所有数字的总和)和平均值。我有一个名为 Student 的单独课程,其中包含以下课程:
private String name;
private int numOfQuizzesTaken;
private int totalScore;
public Student(String name){
this.name = name;
}
public String getName() {
return name;
}
public int getTotalScore() {
return totalScore;
}
public void addQuiz(int score) {
totalScore = totalScore + score;
numOfQuizzesTaken++;
}
public double getAverageScore(){
return totalScore/(double)numOfQuizzesTaken;
}
}
我知道我需要使用一个数组,但我不知道如何将名称与数字分开并存储这些要使用的数字。我写了一个没有 txt 文件的类似代码,它看起来像这样:
Scanner nameInput = new Scanner(System.in);
System.out.print("What is your name? ");
String name = nameInput.next();
Student student = new Student(name);
student.addQuiz(96);
student.addQuiz(94);
student.addQuiz(93);
student.addQuiz(92);
System.out.println("Students Name: " + student.getName());
System.out.println("Total Quiz Scores: " + student.getTotalScore());
System.out.println("Average Quiz Score: " + student.getAverageScore());
希望这能让我对我正在尝试做的事情有所了解,并希望我能得到任何帮助。
解决方案
您需要将文件读入字符串,然后用“”拆分。从那里你将有第一个索引是名称,其他索引是分数
File score = new File("quiz.txt");
Scanner scn = new Scanner(new FileInputStream(score));
String buffer = "";
while (scn.hasNext()) {
buffer += scn.nextLine() + "\n";
}
String[] content = buffer.trim().split(" ");
String name = content[0] ;
Student student = new Student(name);
for (int a = 1 ; a < content.length; a++) {
int scoreval = Integer.parseInt(content[a]);
student.addQuiz(scoreval);
}
推荐阅读
- reactjs - 如何修复 React JS 中的“XML 解析错误:语法错误”?
- c# - 为什么用鼠标旋转物体时它会旋转到相反的方向?
- python - 如何在csv中创建一个带有for循环多年的数据框
- d3.js - D3 Force Layout 是该图的最佳选择吗?
- jquery - 使用 jQuery .on() 方法不会在动态创建的元素上绑定事件
- python - 如果使用了太多的蜘蛛,Scrapy 抓取失败(抓取 0 页)
- ios - 如何从外部更新 SwiftUI 视图状态(例如 UIViewController)
- ios - 哪里可以找到没有 xcode 的 iOS Bundle ID?(扑)
- jquery - 如何使用 jQuery localStorage 记住上次打开的选项卡?
- javascript - 淡入新元素的可靠方法