这个问题在堆栈溢出之前已被问过几次,我想强调一下我已经研究过解决方案但尚未克服我的问题。
我有一个程序应该从文件中读取数据并将其存储在数组中。我目前正在运行一些测试以确保正确读取数据,其中一个是到终端的简单输出。每次我想打印数据时,我都会一直得到" null"。
调查问题我将每个数组元素设置为""。所以我初步了解它们。现在终端只显示一个空行。看来文件中的内容没有被读取到数组?
正在阅读的文件内容:
Q1: (A + B)*(A+B) \n 1. A*A + B*B \n 2. A*A +A*B + B*B \n 3. A*A +2*A*B + B*B \n
Q2: (A + B)*(A - B) \n 1. A*A + 2*B*B \n 2. A*A - B*B \n 3. A*A -2*A*B + B*B \n
Q3: sin(x)*sin(x) + cos(x)*cos(x) \n 1. 1 \n 2. 2 \n 3. 3 \n
我如何阅读它(代码片段在方法中):
try
{
int i =0;
String [] line = new String [10];
for (i=0;i<=9;i++)
{
line[i] = "";
}
Scanner scanner = new Scanner(new File("questions.txt"));
scanner.useDelimiter("Q");
i=0;
while (scanner.hasNext())
{
line[i] = scanner.next();
i++;
System.out.println("" + line[i]);
}
}
catch (FileNotFoundException exp)
{
exp.printStackTrace();
}
答案 0 :(得分:1)
您在sysOut之前有一个i++;
。我认为这就是为什么你没有看到内容阅读。尝试切换这两个语句。
答案 1 :(得分:0)
这是你的问题
line[i] = scanner.next();
i++; // Incrementing the Index before printing
System.out.println("" + line[i]);
试试这个
line[i] = scanner.next();
System.out.println("" + line[i++]);