1

私は、ユーザーから提出された多肢選択問題を採点するための小さなアプリケーションを開発しています。各質問には明らかに4つの選択肢があります。あいうえお。これらの回答は2次元配列に格納されるため、char変数のユーザーからの入力をどのように取得できるかを尋ねたいと思います。コンソールでchar配列の入力を取得する方法を学習していません。つまり、nextInt()、nextDouble()、nextLine()などを使用したばかりです。これらのメソッドは文字列用であり、char用ではありません。char配列の入力を取得する方法は?皆さんがよりよく理解できるように、入力を受け取るコードスニペットを投稿します。

public class MCQChecker{

    public static void main(String []args)
    {
        Scanner input=new Scanner(System.in);
        char[][] students=new char[8][10];

        for (int i=0;i<8;i++)
        {
            System.out.println("Please enter the answer of "+students[i+1]);
            for(int j=0;j<10;j++)
            {
                students[i][j]=?;//Im stuck here
            }
        }
    }
}
4

4 に答える 4

3

値をとして取得したら、その.next()値をString確認して.length() == 1から、を使用しますyourString.charAt(0)

于 2012-10-13T06:51:30.733 に答える
3
   students[i][j]=input.next().charAt(0);
于 2012-10-13T06:51:41.890 に答える
0

必要なのはchar、要件を処理することだけではありません。質問と正解、ユーザーが入力した回答を持つ質問クラスを作成します。

public static class Question {

    private Choice correctChoice = Choice.NONE;
    private Choice userChoice = Choice.NONE;
    private String question = "";

    public Question(String questionString, Choice choice) {
        this.question = questionString;
        this.correctChoice = choice;
    }

    public void setUserChoice(String str) {
        userChoice = Choice.valueOf(str);
    }

    public boolean isQuestionAnswered() {
        return correctChoice == userChoice;
    }

    public String question() {
        return question;
    }

}

enum Choice {
    A, B, C, D, NONE
}

これで、質問のリストを作成し、各質問について、正解したかどうかを確認できます。

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    List<Question> questions = new ArrayList<Question>();
    questions.add(new Question("question1", Choice.A));
    questions.add(new Question("question2", Choice.A));
    questions.add(new Question("question3", Choice.A));
    for (Question q : questions) {
        System.out.println("Please enter the answer of " + q.question());
        String str = input.next();
        q.setUserChoice(str);
        System.out.println("You have answered question "
                + (q.isQuestionAnswered() == true ? "Correctly"
                        : "Incorrectly"));
    }

}

上記のプログラムでは、質問をして、それに応じてユーザーに返信できるようになりました。正しい答え以外の選択肢が入力された場合、質問が尋ねられた場合、質問は間違ってマークされます。

上記の例では、それ以外の文字を入力Aすると、ユーザーに間違っていることがわかります。

于 2012-10-13T07:08:39.440 に答える
0

Java には nextChar() がないため、charArray で直接入力を受け取ることはできません。最初に文字列で入力を取得し、次に文字を 1 つずつ取得する必要があります。

import java.util.*;
class CharArray{
    public static void main(String[] args)
    { 
    Scanner scan=new Scanner(System.in); 

    char ch[]=new char[11];

    String s = scan.nextLine();

    for(int i=0;i<=10;i++)  
    ch[i]=s.charAt(i);  //Input in CharArray

    System.out.println("Output of CharArray: ");
        for(int i=0;i<=10;i++) 
        System.out.print(ch[i]); //Output of CharArray
    }
}
于 2019-10-22T16:29:48.517 に答える