gpt4 book ai didi

java - 从多个txt文件中读取整数并将值相加

转载 作者:行者123 更新时间:2023-12-02 04:28:44 24 4
gpt4 key购买 nike

我刚刚熟悉从txt文件中读取数据,在这个文件中,我必须读取大约3个txt文件,每个文件包含3个整数,然后将这些值添加到总和中。(我在第4个文件中放置了一个while循环被称为零,这就是循环结束的地方,这样我就可以简单地了解它是如何工作的)。

public static void main(String args[]){

Scanner sc = new Scanner(System.in);
int sum = 0;

Scanner x = null;
String FileName;
System.out.println("\n Please enter file name: ");
FileName = sc.next();


try{
x = new Scanner(new File(FileName+".txt"));

我必须使用 while 循环,所以我想如果我使用第一个 while 循环遍历文件名,我可以使用第二个 while(x.hasNextInt()) 读取文件。

    while(!FileName.equals("zero")) {

while(x.hasNextInt()) {

int a=x.nextInt();
int b=x.nextInt();
int c=x.nextInt();

我使用 sum 变量来表示整数的总和(每个文本文件中都是 3)。

            sum=sum+a+b+c;
System.out.printf("Reading from "+ FileName+". The numbers are: "+a+" "+b+" "+c+" .The total is "+sum);
}

System.out.println("\n Please enter file name: ");
FileName = sc.next();
}

}

catch (FileNotFoundException fnf)
{
System.out.println(fnf.getMessage());
}

sc.close();
x.close();
}

这就是我不断得到的:

Please enter file name: 
n1
Reading from n1. The numbers are: 1 0 4 .The total is 5
Please enter file name:
n1
Please enter file name:
n2
Please enter file name:

我做错了什么?

最佳答案

完成第一次迭代后,您忘记将 x 设置为新的扫描仪。因此,x.hasNextInt() 不可能为 true,因为原始文件中没有剩余的整数可供读取。

更改此:

try
{
x = new Scanner(new File(FileName+".txt"));

while(!FileName.equals("zero"))
{
while(x.hasNextInt())
{
% code here
}
}

}

进入

try{

while(!FileName.equals("zero"))
{
x = new Scanner(new File(FileName+".txt")); % Scanner declaration shifted here
while(x.hasNextInt())
{
% code here
}
}

}

关于java - 从多个txt文件中读取整数并将值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31798654/

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