JAVA-将数组返回到main

时间:2010-11-30 03:46:47

标签: java arrays

在我正在处理的程序中,我创建了一个循环来接收20个单独的字符作为用户输入,转换为char,存储在array2中,并将array2返回到main。当我运行我编写的程序时,似乎我编写的代码没有正确地存储array2中的字符。

主要:

// Create array to hold user's answers, and pass answers to the array.
char array2[ ] = new char[20];
getAnswers(array2);

在getAnswers()中:

// getAnswers method requests user input and passes to array2.
public static char[ ] getAnswers(char array2[ ])
{
   String input;  // Holds user input.

   Scanner keyboard = new Scanner(System.in);

   // Request user input.
   System.out.println("Enter the answers for the the multiple choice exam.");

   // Loop to receive input into array.
   for (int index = 0; index < 20; index++)
   {
      System.out.print("Enter number " + (index + 1) +": ");
      input = keyboard.nextLine();
      array2 = input.toCharArray();
   }
   return array2;
}

3 个答案:

答案 0 :(得分:6)

array2[index] = input.charAt(0);

在将值输入到输入变量中之后,而不是每次循环时为其分配一个新的char数组。

答案 1 :(得分:2)

现在你正在为每个输入创建一个新的array2,从而销毁你创建的前一个array2的任何先前输入。

如果你绝对需要创建一个char数组,为什么不将String答案附加到StringBuffer对象中,然后在完成后,在StringBuffer上调用toString()。toCharArray()。

我自己,我创建了一个ArrayList,只是将响应附加到ArrayList,最后返回ArrayList。

答案 2 :(得分:0)

修改方法参数不是一个好主意。你可以尝试:

public static char[ ] getAnswers(char array2[ ])
{
   String input;  // Holds user input.

   Scanner keyboard = new Scanner(System.in);

   // Request user input.
   System.out.println("Enter the answers for the the multiple choice exam.");

String tmp = "";
for (int index = 0; index < 20; index++)
{
   System.out.print("Enter number " + (index + 1) +": ");
   input = keyboard.nextLine();
   tmp += input.chaAt(0);   // check length is > 0 here
}
return tmp.toCharArray();
}