在从文件中读取和解析元素之后,我很难将元素放入数组中。我的想法是我读入的文本文件有一个问题,然后下一行是一个数字,表示哪个答案是正确的。我将字符串解析为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);
}
}
答案 0 :(得分:0)
您应该为answers
使用ArrayList而不是数组。然后你可以像这样添加元素,否则.add
函数会给你一个错误。
或者,您可以执行answers[i] = rightAnswer
,其中i
是您可以添加为计数器的问题数。
答案 1 :(得分:0)
将答案定义为
ArrayList<Integer> answers=new ArrayList<>();
如果字符串不包含可解析的整数,那么考虑NumberFormatException
也是个好主意。
答案 2 :(得分:0)
尝试
//here's where things go wrong
answers[questions.size() - 1] = Integer.parseInt(correctAnswer);
或只使用ArrayList
答案 3 :(得分:0)
有几种方法可以做到这一点。这是一个:
请改用ArrayList answers = new ArrayList();
中的answers
。
在这种情况下,您不会打扰自己将String转换为整数,因为ArrayList接受一个Object。相反,您可以使用answers.add(correctAnswer)
追加。但是,如果要将值作为String获取,可以使用answers.get(yourIndex).toString
。