0

ファイルから要素を読み取って解析した後、要素を配列に入れるのに苦労しています。私が読み込んだテキスト ファイルには質問があり、次の行はどの回答が正しいかを示す数字であるという考えです。文字列を解析して int にしますが、解析した int を Answers 配列に追加できません。私の質問は、配列の回答にintを追加するにはどうすればよいですか? これが私のコードです

//here is how I define my arrays
 List<String> questions = new ArrayList<String>();
 List<String> other = new ArrayList<String>();
 int[] answers = new int[questions.size()];

while (fScan.hasNextLine()) 
    {

        String line = fScan.nextLine();

    if (line.contains("?")) 
    {
        questions.add(line);
        String correctAnswer = fScan.nextLine();
        int rightAnswer = Integer.parseInt(correctAnswer);
        //here's where things go wrong

        answers.add(rightAnswer);

    } 
    else 
    {
        other.add(line);
    }
}
4

4 に答える 4

0

回答を次のように定義します

ArrayList<Integer> answers=new ArrayList<>();

NumberFormatExceptionまた、文字列に解析可能な整数が含まれていない場合は、検討することをお勧めします。

于 2012-12-06T23:13:13.740 に答える
0

としてみてください

   //here's where things go wrong
   answers[questions.size() - 1] = Integer.parseInt(correctAnswer);

または単に ArrayList を使用します

于 2012-12-07T00:04:18.670 に答える
0

には、配列の代わりに ArrayList を使用する必要がありますanswers。次に、このようにそこに要素を追加できます。そうしないと、.add関数によってエラーが発生します。

はカウンターとして追加できる質問の数ですanswers[i] = rightAnsweri

于 2012-12-06T23:07:46.413 に答える
0


これを行うにはいくつかの方法があります。ここに 1 つ:代わりに
使用ArrayList answers = new ArrayList();しますanswers
この場合、ArrayList はオブジェクトを受け入れるため、文字列を整数に変換する必要はありません。代わりに、answers.add(correctAnswer)append を使用できます。ただし、値を String としてフェッチする場合は、 を使用できますanswers.get(yourIndex).toString

于 2012-12-07T03:18:32.100 に答える