我有一个任务让我很早就很难过,其余的任务相当容易(一旦导入数据就对其进行排序,然后以不同的名称再次保存)。
我们需要将 .txt 文件中的数据导入 3 个单独的数组(名称、吉祥物、别名),但行不一致。一致我的意思是一行可能有:
Glebe,G Shield,Glebe District
而另一行可能有:
St George,Knight & Dragon,Saints,Dragons,St George Illawarra
first 之前的所有内容都属于 name 数组。
第一个之后,第二个之前的所有东西都属于吉祥物数组。
second 之后的所有内容,直到行尾都属于别名数组。
我已经能够弄清楚如何导入包含整行的 .txt 文件,然后我能够将其转换为导入“,”和新行之前的所有内容(使用分隔符)。然而,包含超过 3 组数据的行会破坏导入,因为别名数组最终只包含 1 而不是其他所有内容。
因此,有谁知道并可以向我展示一个几乎可以做到的代码:
name = 第一个之前的所有内容,
吉祥物 = 第一个之后,第二个之前的所有东西,
Alias = 第二个之后的所有内容,直到行尾
我可以用它作为我的基础吗?
经过一天的研究,我不断地想出死胡同。它们通常都涉及在每个逗号处拆分,但这会破坏导入(具有超过 1 个别名的行,第二个别名被放入名称数组等)
这是我提出的将整行导入数组的代码:
public static void LoadData() throws IOException
{
String clubtxt = ("NRLclubs.txt");
String datatxt = ("NRLdata.txt");
int i, count;
File clubfile = new File(clubtxt);
File datafile = new File(datatxt);
if (clubfile.exists())
{
count = 0;
Scanner inputFile = new Scanner(clubfile);
i = 0;
while(inputFile.hasNextLine())
{
count++;
inputFile.nextLine();
}
String [] teamclub = new String[count];
inputFile.close();
inputFile = new Scanner(clubfile);
while(inputFile.hasNext())
{
teamclub[i] = inputFile.nextLine();
System.out.println(teamclub[i]);
i++;
}
inputFile.close();
}
else
{
System.out.println("\n" + "The file " + clubfile + " does not exist." + "\n");
}
if (datafile.exists())
{
count = 0;
Scanner inputFile = new Scanner(datafile);
i = 0;
while(inputFile.hasNextLine())
{
count++;
inputFile.nextLine();
}
String [] teamdata = new String[count];
inputFile.close();
inputFile = new Scanner(datafile);
while(inputFile.hasNext())
{
teamdata[i] = inputFile.nextLine();
System.out.println(teamdata[i]);
i++;
}
inputFile.close();
}
else
{
System.out.println("\n" + "The file " + datafile + " does not exist." + "\n");
}
}