Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用逗号分别存储每个值,然后将它们存储到单独的数组中?_Java_Arrays_Delimiter_Filereader - Fatal编程技术网

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");
    }
}