我知道在SO上有类似的问题,但我认为这是独一无二的。
我设计了一个简单的程序来读取文件,然后将文件中的整数相加并打印结果,例如,如果文件中有数字 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语句替换while语句(read.hasNextInt())但是从这里我被卡住了。我应该首先说我在java中,其次我计划最终有程序,以便它将程序中的所有整数相加,然后加上无整数字符的数量并打印出来但我会开始用这个:))
答案 0 :(得分:0)
在调用文本File.nextInt()时调用try / catch并捕获InputMismatchException。这样你就可以计算非数字并防止异常使你脱离循环。