将 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 【参考方案1】:

您应该为您的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 添加到数组中的主要内容,如果未能解决你的问题,请参考以下文章

如何将二维数组直接添加到哈希图中? [复制]

在java中,如何在int数组中为该数组中的另一个值添加值?

可以使用内联语法有条件地将元素添加到数组中吗?

中序遍历 - C 语言中将节点数据添加到 Int 数组

将记录添加到 numpy 记录数组

如何将一个char数组中元素插入到另一个char数组中指定元素后面,在java语言环境,但不能使用java的内置函数