我在此代码上遇到两个错误。一个在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);
}
它应该工作。