java正则表达式中有没有一种方法可以定义要查找的特定字母集?
换句话说,我想确保用户输入的是A、A、L或L。到目前为止,我的解决方案是这样的,但我没有得到正确的正则表达式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”、“
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()
。