java - Java读取文本文件中的每一行
问题描述
我写了一些代码,扫描仪从我的计算机上的文本文件中读取,但是在运行代码时,扫描仪只读取文本文件中的所有其他数字..有什么想法吗?
注意:对于grades.txt,这是文件
“3 8 1 13 18 15 7 17 1 14”
import java.util.*;
import java.io.*;
public class GradeAverage
{
public static void main(String[] args) throws IOException
{
Scanner scanner = new Scanner(new File("C:\\Users\\Media - Graphics\\Documents\\SCHOOL\\NCVPS\\GradeAverage\\grades.txt"));
int i = 0;
int sum = 0;
int lineNumber = 0;
int average = 0;
while(scanner.hasNextInt()){
System.out.println(scanner.nextInt());
sum = sum+scanner.nextInt();
lineNumber++;
}
System.out.println("The sum of the numbers: "+sum);
System.out.println("The number of scores: "+lineNumber);
average = sum/lineNumber;
System.out.println("The average of the numbers: "+average);
}
}
这是它的输出:
3
1
18
7
1
数字总和:67
得分数:5
平均数:13
解决方案
每次调用nextInt()
循环时,都会消耗一个int
. 所以当你这样做时
System.out.println(scanner.nextInt());
sum = sum+scanner.nextInt();
你消耗了两个int
(s)。你想要类似的东西
int t = scanner.nextInt();
System.out.println(t);
sum += t;
此外,您average
目前是一个int
(我希望是一个float
或double
)。
double average = sum/(double)lineNumber;
不要忘记删除int average = 0;
(或相应地修改它average
)。
推荐阅读
- python - How to make a pictogram / icon chart?
- c++ - C++ Main 函数将无法识别我的类
- r - Rename vector rownames
- python - 如何在 pyqt4 的网格顶部添加列
- python - How to run external program on multiple cpu cores using python?
- sql-server - How to add sequence row numbers based on column values SQL Server
- google-cloud-platform - How to parse user intent and put part of it into a variable with Dialogflow (api.ai)?
- wordpress - WordPress - Breadcrumb NavXT 两次显示主页
- authentication - 如何在 Ionic 3 中验证访问令牌?
- jquery - 防止 Chrome(和其他)浏览器记住页面加载时的滚动位置