在java中为文本文件创建二维数组?
我必须导入一个包含单词和整数的文本文件,然后使用二维数组维护数据。我似乎不知道如何制作这个数组。我只能使用扫描仪、文件和FileNotFoundException导入。以下是我的代码片段:
public static void DisplayInventory() throws FileNotFoundException
{
try
{
Scanner autoInventory = new Scanner(new File("records.txt"));
for (int Num = 0; Num < 15; Num++)
{
String autoRecords = autoInventory.nextLine();
autoRecords = autoRecords.replace(';', ' ');
System.out.println(autoRecords);
}
}
catch (FileNotFoundException except)
{
System.out.println("Error: Inventory read failure. Error " +
except.getMessage());
System.exit(-1);
}
}
如您所见,这并不显示数组。我不确定如何做到这一点,已经在这几天了。我是java的新手,这是一项任务。我很感激你能给我的任何帮助
# 1 楼答案
我将做一些假设(可能不准确)。首先,您的文件如下所示(一个包含14行7列的csv):
下一个假设是您的文件包含类型为
String
的值。在执行任何操作之前,我们需要声明2D数组:您发布的代码尝试从扫描仪读取15行,在
;
上执行替换(不确定这是怎么回事),然后打印该行。这是一个很好的开始-这个循环负责读取每一行。我还要添加一个附加条件,检查是否有下一行(使用hasNextLine
)在这个外部循环中,我们首先使用
nextLine
收集rowData
。接下来,我们使用split
(字符串上的函数)将行分割为若干部分(由,
分隔),将这些部分存储在1D数组中。我们声明第二个循环(内部循环),它在colData
上循环-对于我们检查的每个值,我们将其放置在records
数组中的适当位置现在,文件已经读入数组,您可以用类似的方式将其打印到屏幕上。使用外部循环(i)迭代行,使用内部循环(j)迭代列,打印出每个
records[i][j]
# 2 楼答案
我不完全清楚您要做什么,也不完全清楚为什么需要二维数组,但下面是如何创建数组和二维数组,以及如何使用for循环向它们添加数据。然而,我认为你不需要二维数组
我认为这应该足够了,因为我不相信你需要一个二维数组;似乎您尝试执行的操作可以使用常规数组进行管理。话虽如此,我仍然不完全清楚您要做什么,因此如果您确实需要使用二维数组,只需添加另一个for循环,并且在使用该数组时,可能(不一定)需要将第一个for循环的值保持在第一个括号内,第二个是嵌套的-如下所示: