Kotlin字符串忽略大小写匹配实现方法咨询(新手向)
嘿,作为Kotlin新手,你这个大小写忽略匹配的需求其实很容易解决,不用写多个if判断这么繁琐~我给你两种实用的方案:
方法1:用
equals的忽略大小写重载 Kotlin的String类自带了支持大小写忽略的equals方法重载,直接设置ignoreCase = true就能搞定所有大小写组合的匹配:
fun questionFour() { val edittextCountry = findViewById<EditText>(R.id.editTextCountry) val answerEditText = edittextCountry.text.toString() // 不管用户输入是"Brazil"、"brazil"还是"BrAzIl",都会触发判断 if (answerEditText.equals("Brazil", ignoreCase = true)) { correctAnswers++ } }
这个方法直观又简洁,适合只需要匹配单个目标字符串的场景,不需要额外做字符串转换。
方法2:统一转大小写后匹配(更灵活)
如果你以后可能需要兼容多种拼写(比如同时支持英语的"Brazil"和葡萄牙语的"Brasil"),可以把用户输入统一转成小写(或大写),再和预先定义的有效集合对比:
fun questionFour() { val edittextCountry = findViewById<EditText>(R.id.editTextCountry) // 将用户输入转成全小写,消除大小写差异 val userInput = edittextCountry.text.toString().lowercase() // 定义所有可接受的目标字符串(统一用小写) val validCountryNames = setOf("brazil", "brasil") // 判断输入是否在有效集合中 if (validCountryNames.contains(userInput)) { correctAnswers++ } }
这种方式扩展性极强,以后要加更多可接受的拼写,只需要往validCountryNames集合里加元素就行,不用写一堆重复的if判断。
另外提个小细节:Kotlin里可以直接用edittextCountry.text.toString()代替edittextCountry.getText().toString(),因为Kotlin会自动把Java的getter方法转换成属性访问,代码更简洁~
内容的提问来源于stack exchange,提问作者superheron
相关产品推荐
相关产品推荐

