包含
的简单数据文件1908,Souths,Easts,Souths,Cumberland,Y,14,12,4000
1909,Souths,Balmain,Souths,Wests,N
每条线代表一个英超赛季,具有以下格式:年份,总决赛,亚军,小型总决赛,木制打手,总决赛,获胜分数, 失去分数,人群
我知道如何将数据存储到数组中并使用分隔符,但我不确定如何通过逗号将EACH数据项存储到单独的数组中?一些建议和使用的特定代码会很好。
更新: 我只是添加了代码,但它仍然无法正常工作。这是代码:
import java.io.*;
import java.util.Scanner;
public class GrandFinal {
public static Scanner file;
public static String[] array = new String[1000];
public static void main(String[] args) throws FileNotFoundException {
File myfile = new File("NRLdata.txt");
file = new Scanner (myfile);
Scanner s = file.useDelimiter(",");
int i = 0;
while (s.hasNext()) {
i++;
array[i] = s.next();
}
for(int j=0; j<array.length; j++) {
if(array[j] == null)
;
else if(array[j].contains("Y"))
System.out.println(array[j] + " ");
}
}
}
答案 0 :(得分:2)
你走了。使用ArrayList
。它的动态和方便。
BufferedReader br = null;
ArrayList<String> al = new ArrayList();
String line = "";
try {
br = new BufferedReader(new FileReader("NRLdata.txt"));
while ((line = br.readLine()) != null) {
al.add(line);
}
} catch (Exception e) {
e.printStackTrace();
}
for (int i = 0; i < al.size(); i++) {
System.out.println(al.get(i));
}
在您的情况下什么不起作用?
因为您的season
数组为空。您需要定义长度,例如:
private static String[] season = new String[5];
这是不对的,因为您不知道要存储多少行。这就是为什么我建议您使用ArrayList
。
答案 1 :(得分:0)
稍微解决了一下后,我想出了以下代码:
private static File file;
private static BufferedReader counterReader = null;
private static BufferedReader fileReader = null;
public static void main(String[] args) {
try {
file = new File("C:\\Users\\rohitd\\Desktop\\NRLdata.txt");
counterReader = new BufferedReader(new FileReader(file));
int numberOfLine = 0;
String line = null;
try {
while ((line = counterReader.readLine()) != null) {
numberOfLine++;
}
String[][] storeAnswer = new String[9][numberOfLine];
int counter = 0;
fileReader = new BufferedReader(new FileReader(file));
while ((line = fileReader.readLine()) != null) {
String[] temp = line.split(",");
for (int j = 0; j < temp.length; j++) {
storeAnswer[j][counter] = temp[j];
System.out.println(storeAnswer[j][counter]);
}
counter++;
}
} catch (IOException e) {
e.printStackTrace();
}
}
catch (FileNotFoundException e) {
System.out.println("Unable to read file");
}
}
我添加了counterReader
和fileReader
;用于计算行数,然后读取实际行。 storeAnswer
2d数组包含您需要的信息。
我希望现在答案更好。