有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    在调用textFile时加入try/catch。nextInt()并捕获InputMismatchException。这样,您可以计算非数字,并防止异常将您从循环中打断