我在此代码上遇到两个错误。一个在System.out.println的最后一行,一个在我调用该方法时。我将如何使此代码与此文件一起使用?这是我的代码:

package practicefile;

/**
 *
 * @author jahkeyshagodwin
 */
import java.io.*;
import java.util.*;

public class Practicefile {
//import java.util.*;
    /**
    * @param args the command line arguments
    * @throws java.io.FileNotFoundException
     */
    public static void main(String[] args)
            throws FileNotFoundException {
       Scanner input = new Scanner(new File("hotel.txt"));
       PrintStream(Scanner (input));

    }

   public static void PrintStream(Scanner input) {
       while (input.hasNext()) {
            String name = input.next();
            double sum = 0.0;
            while (input.hasNextDouble()) {
              sum += input.nextDouble();
          }
        } System.out.println("Total hours worked by" + name + " = " + sum);

    }

 }


堆栈跟踪显示为:


  线程“主”中的异常java.lang.RuntimeException:无法编译的源代码-错误的符号类型:Practicefile.Practicefile.Scanner
  
  在Practicefile.Practicefile.main(Practicefile.java:23)
  /Users/jahkeyshagodwin/Library/Caches/NetBeans/8.2/executor-snippets/run.xml:53:
  
  返回的Java:1
  生成失败(总时间:1秒)

最佳答案

您遇到的一个问题是生产线

PrintStream(Scanner (input));


您尝试执行的正确语法是:

PrintStream(input);


其次是在循环中声明变量名称和总和。但是,因为您在循环内声明了它们,所以它们在循环外不存在。如果将其更改为:

 public static void PrintStream(Scanner input) {
   String name = "";
   double sum = 0.0;
   while (input.hasNext()) {
        name = input.next();
        while (input.hasNextDouble()) {
          sum += input.nextDouble();
      }
    } System.out.println("Total hours worked by" + name + " = " + sum);

}


它应该工作。

10-07 22:49