当前位置: 首页 > 知识库问答 >
问题:

从文本文件中读取成绩

濮阳茂材
2023-03-14

我正在编写一个程序,读取文本文件,并显示第一个学生的姓名、年级和全班平均成绩。对于上面给出的文件,结果如下:类中的第一个是Ahmad Hamwi has 16.00,类的平均值是12.25这是我试图读取的W文本文件

    public class GradesReader {

/**
 * @param args the command line arguments
 * @throws java.io.FileNotFoundException
 */
public static void main(String[] args) throws FileNotFoundException {
    File grades = new File ("C:\\Users\\the_k\\OneDrive\\Documents\\NetBeansProjects\\GradesReader\\src\\gradesreader\\grades.txt");
    Scanner scan = new Scanner(grades);

    int lineNumber= 0;
    double grade;
    String StudentName;
    double min = 999;
    double max = -999;
    int sum = 0;
    int count=0;

    while (scan.hasNextLine()) {
        lineNumber++;

    StudentName = scan.next();
    grade = scan.nextDouble();
    count++;    
    if(grade>max){
     max=grade;
    }
    if(grade<min){
     min=grade;
    }

    System.out.println("The first in class is" + StudentName + "has" + max );
    double avg = sum /count;
    System.out.println("The average of the class is " + avg);

    }

}

这就是我一直犯的错误

> Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextDouble(Scanner.java:2413)
    at gradesreader.GradesReader.main(GradesReader.java:37) 

我已经试了几个小时了。我知道错误在第37行。这可能与类型有关。我尝试了int和浮动,但一样。

共有1个答案

须志新
2023-03-14

扫描仪的Next()方法只会读取,直到遇到分隔符,默认情况下是空格。因为你的名字是“名字姓”的格式

StudentName = scan.next();

你只会读到名字的“Firstname”部分,然后当你打电话的时候

grade = scan.nextDouble();

它将尝试将“Lastname”读取为双精度值,这当然不起作用并抛出错误。

如果您所有的姓名都是上述格式的“Firstname Lastname”,则您应该能够使用next()方法两次正确读取姓名:

StudentName = scan.next() + " " + scan.next();
 类似资料:
  • 编写了通过Spark读取文本文件的代码...在Local中运行良好...但在HDInsight中运行时产生错误->从Blob读取文本文件 org.apache.spark.sparkException:作业由于阶段失败而中止:阶段0.0中的任务0失败了4次,最近的失败:阶段0.0中丢失的任务0.3(TID 5,wn1-hchdin.bpqkkmavxs0ehkfnaruw4ed03d.dx.int

  • 我的项目中有这样一段代码: 没有错误,应用程序运行正常,但是变量中从来没有任何文本,我确信txt文件中有文本! 我已经尝试过不同的方法来读取文本文件(使用BufferedReader、Scanner、FileInputStream和FileReader),但都不起作用。 另外,我几乎可以肯定问题不在变量中,因为我尝试通过代码(使用运行时)打开文件,它正常打开了正确的文件。 好的,我尝试添加,但是仍

  • 我对JavaFX和JavaFX Scene Builder是新手,几个星期以来一直在研究并试图弄清楚如何简单地从文本文件中读取并在文本中显示其内容。我的controller类中有一个很好的文件读取功能,但我不知道如何将文本文件显示到fxml文档中的文本区域。我已经学会了如何单击按钮并使文件显示在文本区域中,但我希望GUI加载后立即在文本区域中显示内容。如果任何人有一个想法如何去做这件事,你的帮助将

  • 问题内容: 我有一个类QuoteBank,需要使用扫描仪读取txt文件,但是它 给了我一个文件未找到异常 Java文件位于app / src / main / java / nate.marxBros / QuoteBank.java中 txt文件位于app / src / main / assets / Quotes.txt 该代码是 应该像其他任何Java程序一样工作吗?但是它给文件 找不到异

  • 问题内容: 我可以用来从图像(JPEG,PNG)文件中提取文本的最佳开源Java库是什么? 问题答案: 有GOCR和tesseract,但我不确定它们的当前版本如何堆叠-尝试同时尝试您需要处理的一些典型输入并通过此试验进行选择吗?