Java 如何使用逗号分别存储每个值,然后将它们存储到单独的数组中?
一个简单的数据文件,其中包含Java 如何使用逗号分别存储每个值,然后将它们存储到单独的数组中?,java,arrays,delimiter,filereader,Java,Arrays,Delimiter,Filereader,一个简单的数据文件,其中包含 1908,Souths,Easts,Souths,Cumberland,Y,14,12,4000 1909,Souths,Balmain,Souths,Wests,N 每一行代表英超联赛的一个赛季,并具有以下格式:年份、首映、亚军、小首映、木勺、举行的总决赛、获胜分数、, 失分、人群 我知道如何将数据存储到数组中并使用分隔符,但我不确定如何使用逗号将每个数据项存储到单独的数组中?一些建议和要使用的特定代码会很好 更新: 我只是添加了代码,但仍然不起作用。代码如下:
1908,Souths,Easts,Souths,Cumberland,Y,14,12,4000
1909,Souths,Balmain,Souths,Wests,N
每一行代表英超联赛的一个赛季,并具有以下格式:年份、首映、亚军、小首映、木勺、举行的总决赛、获胜分数、,
失分、人群
我知道如何将数据存储到数组中并使用分隔符,但我不确定如何使用逗号将每个数据项存储到单独的数组中?一些建议和要使用的特定代码会很好
更新:
我只是添加了代码,但仍然不起作用。代码如下:
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] + " ");
}
}
}
import java.io.*;
导入java.util.Scanner;
公开课总决赛{
公共静态扫描文件;
公共静态字符串[]数组=新字符串[1000];
公共静态void main(字符串[]args)引发FileNotFoundException{
File myfile=新文件(“NRLdata.txt”);
文件=新扫描仪(myfile);
扫描仪s=file.useDelimiter(“,”);
int i=0;
而(s.hasNext()){
i++;
数组[i]=s.next();
}
对于(int j=0;j,现在开始。使用ArrayList
。它动态且方便
这是不对的,因为您不知道要存储多少行。这就是为什么我建议您使用ArrayList
经过一段时间的研究,我得出了以下代码:
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");
}
}
私有静态文件;
私有静态BufferedReader计数器读取器=null;
私有静态BufferedReader fileReader=null;
公共静态void main(字符串[]args){
试一试{
file=新文件(“C:\\Users\\rohitd\\Desktop\\NRLdata.txt”);
计数器读取器=新的BufferedReader(新的文件读取器(文件));
int numberOfLine=0;
字符串行=null;
试一试{
while((line=counterReader.readLine())!=null){
numberOfLine++;
}
字符串[][]storeAnswer=新字符串[9][numberOfLine];
int计数器=0;
fileReader=新的BufferedReader(新的fileReader(文件));
而((line=fileReader.readLine())!=null){
String[]temp=line.split(“,”);
对于(int j=0;j
我添加了counterReader
和fileReader
;它们用于计算行数,然后读取实际行数。storeAnswer
2d数组包含您需要的信息
我希望现在的答案更好。或者将每一行存储到数组中,例如数组[0]={1908,Souths,Easts,Souths,Cumberland,Y,14,124000}我想我有一个答案可以帮助你,但我只是想澄清一下你想做什么。你想从文件中提取每一行,并从该行提取数据的每一部分,然后将它们放入不同的数组中?那么,你想要一个年数组,一个首播数组,一个数组或亚军数组等等?每一行都有相同的9位数据吗这是澳大利亚足球(又称橄榄球),是吗?G'day伙计。是的,你说得对,本。我需要知道怎么做。哈哈,是的,这是澳大利亚足球,维京斯坦。我是一个雄鸡的超级粉丝:p这个代码很好,但我们没有被教使用链表,所以我们必须使用常规数组。你如何选择特定的数据?例如,我想显示一个举办格兰的英超联赛的列表d Final,在行中显示Y或N。换句话说,我想在第5个逗号后显示所有数据列表?好的,如果你想使用数组,那么在文本行中循环并计算行数,然后创建数组。要检查Y或N,请执行以下操作:line.split(,“”[5]。compareTignoreCase(“Y”)
或line.split(,“”[5].ComparetIgnoreCase(“N”)
@Shuvo0o:(YourLine)只是一个占位符。我打算告诉你你的线路应该在哪里。我会清理它并发布答案。干杯!谢谢!但这有点混乱,或者可能我对你的代码感到困惑。我会发布更新后的代码,但没有链接列表,但当我运行程序时它显示了“Y…”这不是我所期望的。我所期望的是显示一个完整的列表,其中“Y”表示“是”,以举行总决赛。@Shuvo0o:我的答案读取文件中的所有行,并将每个以逗号分隔的参数放入其单独的数组中,以供e.x使用。storeAnswer[0][]
所有的首映式都将在storeAnswer[1][]
等(如Ben Green解释的,您同意的)。如果您要处理任何具体细节,请只说举行了总决赛、赢球得分、输球得分、观众,然后阅读storeAnswer[][]
并提取您需要的内容。
private static String[] season = new String[5];
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");
}
}