java查找并打印文本文件中所有整数的总和
我知道也有类似的问题,但我认为这是独一无二的
我设计了一个简单的程序,读取一个文件,然后将文件中的所有整数相加,然后打印结果,例如,如果文件中有数字 1 2 3 4 5 6 7 8 9 10 然后程序将打印55
然而,当非整数被放入文件时,我会遇到麻烦,例如,如果它是 1 2 3串4 5 6测试7 8 9 10 然后我得到
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:840)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at Week7.Task3.filereader(Task3.java:25)
at Week7.Task3.main(Task3.java:14)
我的代码如下
package testing;
import java.util.*;
import java.io.File;
import java.io.IOException;
public class summingInts
{
public static void main(String[] args)
throws IOException
{
Scanner textfile = new Scanner(new File("intSum.txt"));
filereader(textfile);
}
static void filereader(Scanner textfile)
{
int i = 0;
int sum = 0;
while(i <= 9)
{
int nextInt = textfile.nextInt();
//System.out.println(nextInt);
sum = sum + nextInt;
i++;
//System.out.println(sum);
}
System.out.println(sum);
}
}
根据我的计算结果,我认为应该用while(read.hasNextInt())替换while语句,但从这里开始,我陷入了困境。我可能应该说,首先我是java,其次我计划最终拥有这个程序,这样它可以将程序中的所有整数相加,然后再将非整数字符的数量相加并打印出来,但我将从以下内容开始:)
# 1 楼答案
在调用textFile时加入try/catch。nextInt()并捕获InputMismatchException。这样,您可以计算非数字,并防止异常将您从循环中打断