在文本文件中查找并打印所有整数的总和

时间:2014-12-04 20:21:07

标签: java file while-loop

我知道在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中,其次我计划最终有程序,以便它将程序中的所有整数相加,然后加上无整数字符的数量并打印出来但我会开始用这个:))

1 个答案:

答案 0 :(得分:0)

在调用文本File.nextInt()时调用try / catch并捕获InputMismatchException。这样你就可以计算非数字并防止异常使你脱离循环。