【问题标题】:text file returning null and 0.0返回 null 和 0.0 的文本文件
【发布时间】:2013-09-12 06:37:53
【问题描述】:

我正在尝试读取一个包含 6 个元素的文本文件并将其放入两个数组中。我要阅读的文本的第一个元素是字符串,第二个元素是双精度。但是,当我调用println 来验证输出时,它会打印null0.0

import java.io.*;
import java.util.*;

public class inputFile {

public static void main(String[] args) throws FileNotFoundException{

    String [] studNum = new String [25];
    double [] grade = new double [25];



    File findFile = new File ("//Users//luiserojas//Documents//holaFile.txt");
    Scanner inFile = new Scanner (findFile);

    int index = 0;

        while (inFile.hasNext()){
            studNum [index] = inFile.next();
            grade [index] = inFile.nextDouble();
            index ++;
            System.out.println(studNum[index] + grade[index]); 
        }

        }

}

【问题讨论】:

  • 答案表明索引存在问题,但为了从文件中读取字符串,您需要 inFile.hasNextLine() 并且您必须拆分字符串。以您编写它的方式,它在每​​个循环中只读取一个标记。

标签: java arrays null


【解决方案1】:

您在打印项目之前递增index,因此您尝试打印尚未添加的项目,这些项目的默认构造值为null0.0d,您的数组在创建时被填充.只需像这样重新排序以下行将有所帮助:

        System.out.println(studNum[index] + grade[index]); 
        index ++;

【讨论】:

  • 非常感谢您的意见...我知道这对我来说真的很菜鸟!它完全有道理,现在可以使用......
【解决方案2】:

您在打印值之前递增index,那里还没有存储任何内容。你需要把index++放在println()之后

【讨论】:

  • 非常感谢您的意见...我知道这对我来说真的很菜鸟!这完全有道理......
【解决方案3】:

您正在打印索引递增后的值,因此默认值是 dsiplaying。所以首先打印和下一个递增索引。

while (inFile.hasNext()){
            studNum [index] = inFile.next();
            grade [index] = inFile.nextDouble();
            System.out.println(studNum[index] + grade[index]); 
            index ++;
        }

【讨论】:

    猜你喜欢
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    相关资源
    最近更新 更多