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

时间:2013-02-12 19:13:48

标签: java arrays split

我有一些问题游戏的.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 void Next(){
    questionNumber=questionNumber + 1;
}

读取行的部分以及我想要创建行数Array的部分:

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

1 个答案:

答案 0 :(得分:1)

这是代码(假设索引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()]);
      }