Android Studio Java项目:如何校验EditText输入内容是否匹配正确答案?
问题分析与解决方案
你的代码没生效大概率是这几个原因:
- 大小写敏感:
matches("LION")是严格匹配大写的,要是玩家输入小写"lion"或者混合大小写"LiOn",都会不匹配。 - 输入含空白字符:如果玩家输入时不小心多打了空格(比如" LION"或"LION "),
matches会因为字符串不完全等于"LION"而不触发提示。 - 缺少错误分支:你的代码只处理了正确的情况,错误时没有任何提示,可能会让你误以为代码完全没运行。
修改后的代码方案
// 获取输入文本并去掉前后空白字符 String str = monkey.getText().toString().trim(); // 忽略大小写比较,覆盖正确和错误两种场景 if ("LION".equalsIgnoreCase(str)) { Toast.makeText(this, "Correct", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "Wrong", Toast.LENGTH_SHORT).show(); }
代码说明
trim():去除输入字符串前后的空格、换行等空白字符,避免因误输入空格导致判断错误。equalsIgnoreCase():忽略大小写比较字符串,不管玩家输入大写、小写还是混合大小写,只要内容是"lion"就会匹配成功。- 新增
else分支:错误时弹出"Wrong"提示,让你能明确看到校验结果。
可选的matches写法(不推荐,效率略低)
如果你坚持要用matches方法,可以开启忽略大小写模式:
String str = monkey.getText().toString().trim(); // (?i)开启忽略大小写模式,匹配整个字符串 if (str.matches("(?i)LION")) { Toast.makeText(this, "Correct", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "Wrong", Toast.LENGTH_SHORT).show(); }
内容的提问来源于stack exchange,提问作者mchauuuu
相关产品推荐
相关产品推荐

