1

我正在开发一个小型应用程序来对用户提交的多项选择题进行评分。每个问题显然有 4 个选项。A B C D。由于这些答案将存储在二维数组中,我想问一下如何从用户那里获取 char 变量的输入。我还没有学会任何在控制台上为 char 数组输入的方法。即我刚刚使用过 nextInt()、nextDouble()、nextLine() 等。这些方法适用于字符串和整数,而不适用于字符。如何获取字符数组的输入?我将发布接受输入的代码片段,以便大家更好地理解。

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()a 的值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

您不能直接在 charArray 中输入,因为 Java 中没有 nextChar()。您首先必须在 String 中输入,然后一个一个地获取字符。

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 回答