2010-11-30 14 views
2

私が取り組んでいるプログラムでは、ユーザー入力として20個の文字を受け取り、charに変換し、array2に格納し、array2をmainに戻すループを作成しました。私が書いたプログラムを走らせたとき、私が書いたコードはchar2をarray2に正しく格納していなかったようだ。メインでJAVA-配列をメインに戻す

// 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; 
} 

答えて

6

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

を試してみてください毎回ループを介して配列されます。

+0

ああ、持っています。ありがとうございました。 – Jett

2

今度は、それぞれの入力で新しい配列2を作成し、作成した前の配列2の以前の入力をすべて破棄します。

文字配列を作成する必要がある場合は、文字列の答えをStringBufferオブジェクトに追加し、それが終わったらStringBufferのtoString()。toCharArray()を呼び出してください。

私自身は、ArrayListを作成し、その応答をArrayListに追加し、最後にArrayListを返します。

+0

問題を正しく識別するための+1。 – mvg

+0

ありがとう!いつか好意を返せますか? –

+0

いつも歓迎!!! – mvg

0

メソッドparamを変更することはお勧めできません。試してみることができます:

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(); 
} 
関連する問題