我正在尝试将 .txt 文件读入两个不同的数组,一个一维字符串数组和一个二维整数数组。该代码可以很好地将名称读取到 NamesArray 中。然而,代码似乎要么只读取第一列数字,要么只输出第一列。我不确定我的代码哪里出了问题。非常感谢任何帮助!
下面的数据是如何在文件中格式化的。
Jason 10 15 20 25 18 20 26
Samantha 15 18 29 16 26 20 23
Ravi 20 26 18 29 10 12 20
Sheila 17 20 15 26 18 25 12
Ankit 16 8 28 20 11 25 21
这是我到目前为止的代码。
import java.io.*;
import java.util.*;
public class Page636Exercise12
{
// static Scanner console = new Scanner(System.in);
public static void main(String[] args) throws FileNotFoundException, IOException
{
int Count = 0;
String[] NamesArray = new String[5];
int [][] MileageArray = new int [5][7];
int Mileage = 0;
String Names = "";
//Open the input file.
Scanner inFile = new Scanner(new FileReader("Ch9_Ex12Data.txt"));
//Reads from file into NamesArray and MileageArray.
while (inFile.hasNext())
{
Names = inFile.next();
NamesArray[Count] = Names;
Mileage = inFile.nextInt();
MileageArray[Count][Count] = Mileage;
Names = inFile.nextLine();
System.out.println(NamesArray[Count] + " " + MileageArray[Count][Count]);
Count++;
inFile.close();
}
}
这是我得到的输出。
Jason 10
Samantha 15
Ravi 20
Sheila 17
Ankit 16
最佳答案
问题是您只在 MileageArray
的索引 [count][count]
处存储了一个数字。您需要使用一个循环填充数组,该循环循环预期的整数标记总数,如下所示:
for(int j = 0; j < 7; j++){
Mileage = inFile.nextInt();
MileageArray[Count][j] = Mileage;
}
Names = inFile.nextLine();
我还建议您将 MileageArray
列和行大小指定为常量。即:
final int ROWS = 5;
final int COLS = 7;
如果输入文件格式发生变化,这将允许您以更可配置的方式更新解析代码。
关于java - 为什么我的代码只读取java中.txt文件中的第一列数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49665461/