Java 正在验证添加到阵列中的扫描仪的用户输入

Java 正在验证添加到阵列中的扫描仪的用户输入,java,arrays,arraylist,java.util.scanner,Java,Arrays,Arraylist,Java.util.scanner,我正在创建一个测试程序,测试答案存储在一个数组中,用户的答案存储在一个单独的数组中 我试图编写我的程序,以便在每个问题之后,用户的答案都被加载到数组中,除非他们输入“A”、“B”、“C”或“D”以外的内容。如果他们没有在中键入其中一个值,则会再次询问该问题。我被卡住了 这是我的密码: String[] testAnswers = {"B","D","A","A","C","A","B","A","C","D"}; int uT = testAnswers.length; String[] us

我正在创建一个测试程序,测试答案存储在一个数组中,用户的答案存储在一个单独的数组中

我试图编写我的程序,以便在每个问题之后,用户的答案都被加载到数组中,除非他们输入“
A
”、“
B
”、“
C
”或“
D
”以外的内容。如果他们没有在中键入其中一个值,则会再次询问该问题。我被卡住了

这是我的密码:

String[] testAnswers = {"B","D","A","A","C","A","B","A","C","D"};
int uT = testAnswers.length; 
String[] userAnswers = new String[uT];

for (int i=0; i<uT;i++) {
System.out.print("Question #"+(i+1)+": ");

userAnswers[i] = in.nextLine();
userAnswers[i] = userAnswers[i].toUpperCase();

}

使用while循环,仅在输入正确时递增

String[] testAnswers = {"B","D","A","A","C","A","B","A","C","D"};
int uT = testAnswers.length; 
String[] userAnswers = new String[uT];

int i = 0;
while(i<uT) {
    System.out.print("Question #"+(i+1)+": ");

    String input = in.nextLine();
    input = input.toUpperCase();
    if (input.equals ("A") || input.equals ("B") ...) {
        userAnswers[i] = input;
        i++;
    }
    else {
        System.out.println ("Enter again");
    }

}
String[]testAnswers={“B”、“D”、“A”、“A”、“C”、“A”、“B”、“A”、“C”、“D”};
int uT=测试答案长度;
String[]userAnswers=新字符串[uT];
int i=0;

while(i使用while循环,仅在输入正确时递增

String[] testAnswers = {"B","D","A","A","C","A","B","A","C","D"};
int uT = testAnswers.length; 
String[] userAnswers = new String[uT];

int i = 0;
while(i<uT) {
    System.out.print("Question #"+(i+1)+": ");

    String input = in.nextLine();
    input = input.toUpperCase();
    if (input.equals ("A") || input.equals ("B") ...) {
        userAnswers[i] = input;
        i++;
    }
    else {
        System.out.println ("Enter again");
    }

}
String[]testAnswers={“B”、“D”、“A”、“A”、“C”、“A”、“B”、“A”、“C”、“D”};
int uT=测试答案长度;
String[]userAnswers=新字符串[uT];
int i=0;

而(我我会这样说:

for (int i=0; i<uT;i++) {
    System.out.print("Question #"+(i+1)+": ");
    String userCurrentAnswer = in.nextLine();

    while (!userCurrentAnswer.matches("(?i)[A|B|C|D]")) {
        System.out.println("Invalid Input. ");
        System.out.print("Question #"+(i+1)+": ");
        userCurrentAnswer = in.nextLine();
    }
    userAnswers[i] = userCurrentAnswer.ToUpperCase();
}

对于(inti=0;i我会这样说:

for (int i=0; i<uT;i++) {
    System.out.print("Question #"+(i+1)+": ");
    String userCurrentAnswer = in.nextLine();

    while (!userCurrentAnswer.matches("(?i)[A|B|C|D]")) {
        System.out.println("Invalid Input. ");
        System.out.print("Question #"+(i+1)+": ");
        userCurrentAnswer = in.nextLine();
    }
    userAnswers[i] = userCurrentAnswer.ToUpperCase();
}

用于(int i=0;i您遇到的确切问题是什么?有错误消息吗?无论我输入什么,我的程序只会问每个问题两次,然后在我实现ArrayList时问下一个问题您遇到的确切问题是什么?有错误消息吗?无论我输入什么,我的程序只会问每个问题两次,然后问下一个问题当我实现正则表达式的ArrayListElegant用法时的问题。正则表达式的优雅用法。