2012-10-13 19 views
1

我正在开发一个小型应用程序,用于评估用户提交的多选题。每个问题显然有4个选择。 A B C D。由于这些答案将存储在一个二维数组中,所以我想问一下如何从用户处获取有关char变量的输入。我还没有学习任何方法来控制台上的字符数组输入。即我刚刚使用nextInt(),nextDouble(),nextLine()等。这些方法适用于字符串和整数而不适用于字符。如何为char数组输入数据?我将发布输入代码片段,以便人们可以更好地理解。如何在Java中为'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 
      } 
     } 
    } 
} 
+0

仅供参考不要在SO编辑器中缩进您的代码。从IDE中粘贴完整格式的代码。 –

回答

3

一旦你获得了.next()值作为String,检查其.length() == 1,然后使用yourString.charAt(0)

+0

非常感谢埃里克! – Hammad

+0

@Hammad获得性格不会让你任何地方。检查我的答案。你需要的远不止这些。 –

+0

@AmitD你的回答是完整重写OP的问题和情况。给他一个完整的解决方案并没有教他什么,因为你所做的全部都是用'enum'和额外的'class'概念来压倒他。他的方法对于他执行这个项目的小规模很有效。 – Eric

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

谢谢Yogendra! – Hammad

+0

如果这有帮助,请不要忘记接受答案。 –

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,则会告知用户您错误。

相关问题