可以使hasNext()不区分大小写吗?

时间:2016-04-27 23:16:24

标签: java java.util.scanner

我的主菜单位于while循环内,用于检查用户是否要退出。

while(!sc.hasNext("quit")){
   ...}

我可以使hasNext()不区分大小写,因此用户可以在单词'quit'中键入任何案例变体,例如QuIt或quIt吗?

2 个答案:

答案 0 :(得分:1)

我相信String模式" ^(?i)退出$"传递给sc.hasNext(String)将有效。

final String QUIT_PAT = "^(?i)quit$";
...
while (! sc.hasNext(QUIT_PAT)) {
  ...
}

我没有设置简单的扫描仪进行测试,但正则表达式应该可以正常工作。

但是,我建议read this answer建议在使用stdin时嵌入检查可能不是最佳方法。

正则表达式的示例测试结果: enter image description here

答案 1 :(得分:0)

解决这个问题的一种方法是通过获取用户输入并自动将sting中的所有字符发送到大写或小写,然后检查。那么用户放入的内容并不重要。

String str1 = new String(); 
str1 = scanner.nextLine();
str1.toUpperCase();
while(str1.equals("QUIT")){....}