【发布时间】:2018-09-14 20:50:59
【问题描述】:
我正在尝试将 .txt 文件读入两个不同的数组,一个 1d 字符串数组和一个 2d int 数组。代码将名称读入 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
【问题讨论】:
-
注意 Java 命名约定。变量名应以小写字符开头
-
您只获得第一个数字,因为您只存储了第一个数字
Scanner.nextInt()获得下一个通常由空格分隔的 token (我假设它们在您的文件中)。 -
您也可以尝试读取行,用空格分隔字符串(''),第一个元素将始终是名称,其余部分将是数字。它会让你的代码更加灵活,即使数字的数量变化它仍然可以工作。
标签: java arrays multidimensional-array java-io