java正则表达式中有没有一种方法可以定义要查找的特定字母集?

java正则表达式中有没有一种方法可以定义要查找的特定字母集?,java,regex,Java,Regex,换句话说,我想确保用户输入的是A、A、L或L。到目前为止,我的解决方案是这样的,但我没有得到正确的正则表达式 while(!qtype.hasNext("A| L") || !qtype.hasNext("a| l")){ System.out.print("Please enter 'A' or 'L':"); qtype.next().toUpperCase(); } qal = qtype.next().toUpperCase(); 要确定字符串str是“a”、“a”、“

换句话说,我想确保用户输入的是A、A、L或L。到目前为止,我的解决方案是这样的,但我没有得到正确的正则表达式

while(!qtype.hasNext("A| L") || !qtype.hasNext("a| l")){
    System.out.print("Please enter 'A' or 'L':");
    qtype.next().toUpperCase();
}
qal = qtype.next().toUpperCase();

要确定字符串
str
“a”
“a”
“L”
还是
“L”
,可以使用

str.matches("[AaLl]")
如果不想使用正则表达式:

str.equalsIgnoreCase("A") || str.equalsIgnoreCase("L")

试着这样做:

while (! (qal = qtype.next()).matches("[AaLl]"))
    System.out.print("Please enter 'A' or 'L': ");

或者,您可能希望将逻辑Or更改为逻辑AND。您不能在正则表达式中使用其他空格。我希望检查扫描仪输入(qtype)。有什么解决方案吗?我现在就在这里,但是扫描仪不会对输入做出反应,除非我输入它,按enter键,然后再次输入(也按enter键)。有什么想法吗?您的值已在while语句中检索并分配给qal。您的最后一行可以更改为
qal=qal.toUpperCase()