【问题标题】:Adding an int to an array将 int 添加到数组中
【发布时间】: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

标签: java arrays int add


【解决方案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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-12-21
          • 1970-01-01
          • 2010-11-25
          • 2023-01-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多