0

我有一些用于问题游戏的 .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"}
4

1 回答 1

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()]);
      }
于 2013-02-12T19:53:25.020 回答