Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
输入文件中整数位数求和java错误_Java_Methods - Fatal编程技术网

输入文件中整数位数求和java错误

输入文件中整数位数求和java错误,java,methods,Java,Methods,我试图从输入文件“input.txt”中读取整数,将整数分开,然后添加数字。我的这段代码给了我一个错误,说sum的方法是一个非法的开始。有什么建议吗 public static void main(String[] args){ //declarations boolean fileOpened = true; Scanner inputFile = null; int sumNum, num; //read input String fileN

我试图从输入文件“input.txt”中读取整数,将整数分开,然后添加数字。我的这段代码给了我一个错误,说sum的方法是一个非法的开始。有什么建议吗

public static void main(String[] args){

    //declarations
    boolean fileOpened = true;
    Scanner inputFile = null;
    int sumNum, num;
    //read input
    String fileName = " ";
    System.out.println("Please input the name of the file to be opened: ");
    Scanner input = new Scanner(System.in);
    fileName = input.nextLine();

    try{
        inputFile = new Scanner(new File(fileName));
    }
    catch(FileNotFoundException e){
        System.out.println("--- File NOT Found! ---");
        fileOpened = false;
    }

    if(fileOpened && inputFile.hasNext()){
        sumNum = sum(num);//method call
        while(inputFile.hasNextInt()){
            if(inputFile.hasNextInt()){
                num = inputFile.nextInt();
                System.out.println("For number " + num + " the sum of the digits is: " + sumNum);
            }
            else{
                inputFile.next();
            }
        }
    }

    public static int sum(int num){
        int i, sumNum = 0;
        for(i = 1; i <= num; i++){
            sumNum += num % 10;
            num /= 10;
        }
        return sumNum;
    }
}
publicstaticvoidmain(字符串[]args){
//声明
布尔值fileOpened=true;
扫描仪输入文件=空;
int sumNum,num;
//读取输入
字符串fileName=“”;
System.out.println(“请输入要打开的文件名:”;
扫描仪输入=新扫描仪(System.in);
fileName=input.nextLine();
试一试{
inputFile=新扫描仪(新文件(文件名));
}
catch(filenotfounde异常){
System.out.println(“--未找到文件!”);
fileOpened=false;
}
if(fileOpened&&inputFile.hasNext()){
sumNum=sum(num);//方法调用
while(inputFile.hasNextInt()){
if(inputFile.hasNextInt()){
num=inputFile.nextInt();
System.out.println(“对于数字“+num+”,数字之和为“+sumNum”);
}
否则{
inputFile.next();
}
}
}
公共静态整数和(整数){
int i,sumNum=0;

对于(i=1;i您在主方法中缺少一个
}
。您还没有初始化
num

我已修复main以提供正确的输出。您的方法中还有其他问题。您在错误的位置调用了
sum
方法。请尝试以下答案:

public static void main(String[] args){
        //declarations
        boolean fileOpened = true;
        Scanner inputFile = null;
        int sumNum, num = 0;
        //read input
        String fileName = "";
        System.out.println("Please input the name of the file to be opened: ");
        Scanner input = new Scanner(System.in);
        fileName = input.nextLine();
        try{
          inputFile = new Scanner(new File(fileName));
        }
        catch(FileNotFoundException e){
          System.out.println("--- File NOT Found! ---");
          fileOpened = false;

        }

          while(inputFile.hasNextInt()){
              num = inputFile.nextInt();
              sumNum = sum(num);//method call
              System.out.println("For number " + num + " the sum of the digits is: " + sumNum);
        }
      }

缩进您的代码,您可能缺少一些
{
}
s。现在我可以看到,您没有
}
您的
main
方法。
sumNum=sum(num);//方法调用
,u贴花
num
但我看不到它的初始化位置!!谢谢!我修复了它并初始化了方法调用,但现在它没有读取“.txt”文件并使用文件中的整数。@anirudh:据我所见……你只是将注释汇总为答案……至少你应该指出
}
main
!!:)@NoobEditor:对不起,我正在修复方法,所以在发布答案时没有看你的注释。我现在发布了fixed main方法。它修复了错误,除了我的逻辑错误,它不允许使用“input.txt”文件获取整数以求和。太令人困惑了