gpt4 book ai didi

java - 无法打印 txt 文件中所有数字的总和

转载 作者:行者123 更新时间:2023-12-02 02:36:41 25 4
gpt4 key购买 nike

我的文件中有一些数字,但我不知道如何计算 txt 文件中所有数字的总和。

class sum {
public static void main (String[] args) {
try {
File file = new File("C:\\Users\\Spencer Du\\eclipse-workspace\\Exam prep\\src\\examPaper20162017\\sum.txt");
Scanner scan = new Scanner(file);
int num;
int sum = 0;

while (scan.hasNext()) {
if (scan.hasNextInt()) {
num = scan.nextInt();
System.out.println(num);
}
else scan.next();
}

while (scan.hasNext()) {
if (scan.hasNextInt()) {
sum+= scan.nextInt();
System.out.println(sum);
}
else scan.next();
}
System.out.println(sum);
}
catch ( FileNotFoundException e ) { // may be throw by new FileReader(...)
System.out.println( e );
}
catch ( IOException e ) { // may be thrown by readLine()
System.out.println( e );
}
}
}

输出是:

1
6
3
9
12
0

我可以将 txt 文件中的所有整数打印在单独的行上,但最后一位数字应该是总和。它不计算总和,但给我一个零。我该如何解决这个问题,以便前五位数字的总和打印出一个总和值而不是零。

谢谢

最佳答案

不应使用两个 while 循环。第一个 while 循环完全读取整个文件,使第二个 while 循环不再需要解析输入(因此没有要求和的数字)。将两个循环合并为一个循环,如下所示:

       while (scan.hasNext()) {
if (scan.hasNextInt()) {
num = scan.nextInt();
sum+= num;
System.out.println(num);
}
else scan.next();
}

如果您在使用第二个循环之前创建一个新的扫描仪实例,则理论上两个单独的 while 循环都可以工作。然后第二个循环将使用"new"扫描仪并再次获取所有输入数字。

关于java - 无法打印 txt 文件中所有数字的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57199787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com