gpt4 book ai didi

java - 我的数组一直打印空值。填写不当?

转载 作者:行者123 更新时间:2023-12-01 18:09:32 26 4
gpt4 key购买 nike

我查看了其他提出的问题,大多数都使用了拆分,但我没有使用它,也没有根据我的情况得到适当的回答。正在练习数组,现在正在尝试拉取来自文件的字符串。这是我的主要类(class)

Scanner fileIn = null;  // Initializes fileIn to an empty object
try
{
// Attempt to open the file
FileInputStream file = new FileInputStream("questions.dat");
fileIn = new Scanner(file);
}
catch (FileNotFoundException e)
{
// If the file could not be found, this code is executed
// and then the program exits
System.out.println("File not found.");
System.exit(0);
}

String line = "";
int i = 0;
String question[] = new String[5];

for(i=0; i < question.length; i++)
{
while(fileIn.hasNextLine())
{
line = fileIn.nextLine();
System.out.println(line);
question[i] = fileIn.nextLine();

}
System.out.println(Arrays.toString(question));
}

出于某种原因,当它打印 Question[] 时,它会打印 [7, null, null, null, null]。我不知道为什么。我的数组实际上没有填充字符串吗?示例字符串。 一周有多少天?七。大多数人有多少根手指?十。这是最后一个字符串。 程序从哪里获取 null?

最佳答案

您有嵌套循环,并且仅填充数组中的第一个元素:

for(i=0; i < question.length; i++)
{
while(fileIn.hasNextLine())
{
line = fileIn.nextLine();
System.out.println(line);
question[i] = fileIn.nextLine();

}
System.out.println(Arrays.toString(question));
}

您需要删除内部循环:

for(i=0; i < question.length; i++)
{
if(fileIn.hasNextLine())
{
line = fileIn.nextLine();
System.out.println(line);
question[i] = line;

}
System.out.println(Arrays.toString(question));
}

关于java - 我的数组一直打印空值。填写不当?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33989731/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com