Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.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_Split - Fatal编程技术网

Java:从另一个数组创建数组

Java:从另一个数组创建数组,java,arrays,split,Java,Arrays,Split,我有一些用于提问游戏的.txt文件,我把它们分成了一些部分。这些部分会被查看,当用户转到下一页的问题时,我会从txt中读到下一行。问题是我想将每行的一部分存储到一个数组中。例如,如果有30行,我需要用这些部分创建另一个包含30个参数的数组,以便稍后与玩家回答的问题数组进行比较 也许它不是很清楚,所以这里是代码 我读了这些文件: try { InputStream is = context.getAssets().open(questionFile); Buffer

我有一些用于提问游戏的.txt文件,我把它们分成了一些部分。这些部分会被查看,当用户转到下一页的问题时,我会从txt中读到下一行。问题是我想将每行的一部分存储到一个数组中。例如,如果有30行,我需要用这些部分创建另一个包含30个参数的数组,以便稍后与玩家回答的问题数组进行比较

也许它不是很清楚,所以这里是代码

我读了这些文件:

try {
        InputStream is = context.getAssets().open(questionFile);
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        // Skips lines
        for (i = 0; i< questionNumber; i++) {
            reader.readLine();

        }
        question = reader.readLine();
读取行的一部分,以及我要从中创建行数的
数组的一部分:

public String getCorrecta() {
    String[] parts = question.split("\\;");
    String correcta = parts[8];
    return correcta;
}
因此,如果有txt文件,请使用以下示例继续:

1;1; ; ; ; ; ; ;C
2;2; ; ; ; ; ; ;B
3;3; ; ; ; ; ; ;A
4;4; ; ; ; ; ; ;D
我需要这样一个数组:

public String [] Example = {"C","B","A","D"}
下面是代码(假设索引8(基于零)是预先知道的。但是,如果您想读取文件并将所有列放入单独的数组中(更喜欢集合而不是数组),您应该一次完成,而不是多次读取文件。需要更好地理解您的用例

      public static final String COLUMN_SEPARATOR = ";";
      String[] stringsAtIndexN(int index, String inputFile)
        throws IOException {
        List<String> list = new ArrayList<String>();
        BufferedReader br = new BufferedReader(new FileReader(inputFile));
        String str;
        while ((str = br.readLine()) !=null) {
          list.add(str.split(COLUMN_SEPARATOR)[index]);
        }
        return list.toArray(new String[list.size()]);
      }
公共静态最终字符串列_SEPARATOR=“;”;
字符串[]stringsAtIndexN(整数索引,字符串输入文件)
抛出IOException{
列表=新的ArrayList();
BufferedReader br=新的BufferedReader(新文件读取器(inputFile));
字符串str;
而((str=br.readLine())!=null){
添加(str.split(列分隔符)[索引]);
}
return list.toArray(新字符串[list.size()]);
}

您应该使用
数组列表
而不是
数组
,在这种情况下,您不需要预先指定大小。现在,您面临的实际问题是什么?是如何添加所有
部分的问题[8]
在单独的数组中?嗨,Rohit Jain,我知道行数,是的,我不知道如何在另一个Sperate数组中添加部分[8]。@Katherine99这是我从你的问题中得到的。你有一个文件,每行包含一个问题和一些更多信息(或其他信息)包括由
分隔的答案。您已经知道如何从该行中分隔不同的部分。现在,您实际面临的问题是什么部分?您是否遇到了一些错误,或者您的代码没有按预期工作?@RohitJain看起来OP不知道如何使用
ArrayList
(OP应该确认或否定这一点)。如果我错了,那么最好的选择就是使用这个类来解决这个问题。你的文本文件总是8乘n吗?你可以为此创建一个多维数组,并使访问你扫描的内容变得更容易。不过,我也有点困惑你实际的问题是什么。
      public static final String COLUMN_SEPARATOR = ";";
      String[] stringsAtIndexN(int index, String inputFile)
        throws IOException {
        List<String> list = new ArrayList<String>();
        BufferedReader br = new BufferedReader(new FileReader(inputFile));
        String str;
        while ((str = br.readLine()) !=null) {
          list.add(str.split(COLUMN_SEPARATOR)[index]);
        }
        return list.toArray(new String[list.size()]);
      }