如何在Java中获取'char'数组的输入?

时间:2012-10-13 06:47:32

标签: java console

我正在开发一个小型应用程序来评估用户提交的多项选择题。每个问题显然有4种选择。 A B C D。由于这些答案将存储在二维数组中,我想问一下如何从用户获取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 个答案:

答案 0 :(得分:3)

.next()值作为String后,检查其是.length() == 1,然后使用yourString.charAt(0)

答案 1 :(得分:3)

   students[i][j]=input.next().charAt(0);

答案 2 :(得分: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,那么它会告诉用户你的错误。

答案 3 :(得分: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
    }
}