我正在开发一个小型应用程序来评估用户提交的多项选择题。每个问题显然有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
}
}
}
}
答案 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
}
}