在我正在处理的程序中,我创建了一个循环来接收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;
}
答案 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();
}