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 に答える