将 int 添加到数组中
Posted
技术标签:
【中文标题】将 int 添加到数组中【英文标题】:Adding an int to an array 【发布时间】:2012-12-06 23:01:57 【问题描述】:在从文件中读取和解析元素后,我很难将它们放入数组中。这个想法是我读入的文本文件有一个问题,然后下一行是一个数字,表示哪个答案是正确的。我将字符串解析为一个 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);
【问题讨论】:
如果解析出错了怎么办? 尝试打印出您的正确答案而不是添加它。如果没问题,请展示您如何定义“答案”数组。 由于我读入的文件格式的性质,除非上面的代码出现错误,否则解析应该可以工作 什么是答案类型? 为什么不定义 ArrayList您应该为您的answers
使用 ArrayList 而不是数组。然后你可以像这样在那里添加元素,否则.add
函数会给你一个错误。
或者,您可以使用answers[i] = rightAnswer
,其中i
是您可以添加为计数器的问题数。
【讨论】:
【参考方案2】:将答案定义为
ArrayList<Integer> answers=new ArrayList<>();
如果字符串不包含可解析的整数,考虑 NumberFormatException
也是个好主意。
【讨论】:
【参考方案3】:试一试
//here's where things go wrong
answers[questions.size() - 1] = Integer.parseInt(correctAnswer);
或者只使用 ArrayList
【讨论】:
【参考方案4】:
有几种方法可以做到这一点。这是一个:
在您的answers
中使用ArrayList answers = new ArrayList();
。 在这种情况下,您不必费心将字符串转换为整数,因为 ArrayList 接受对象。相反,您可以使用answers.add(correctAnswer)
来追加。但是,如果您想将值作为字符串获取,您可以使用 answers.get(yourIndex).toString
。
【讨论】:
以上是关于将 int 添加到数组中的主要内容,如果未能解决你的问题,请参考以下文章