如何在Kotlin中统计字符串字符数量?现有实现结果少1如何解决
问题原因
- Kotlin中
0 until x.length属于左闭右开区间,遍历的最大值为x.length - 1。以输入字符串James为例,其长度为5,遍历的i值依次为0、1、2、3、4,循环执行到最后时i的取值为4。 - 代码在循环内每次覆盖TextView的文本内容,最终仅保留最后一次循环的i值,因此输出结果比实际字符数少1,且循环逻辑本身完全没有必要,属于冗余实现。
修正方案
直接调用String类的length属性获取字符总数即可,无需遍历,代码如下:
@SuppressLint("SetTextI18n") private fun countName(x: String) { val textView: TextView = findViewById(R.id.result) textView.text = x.length.toString() }
如果必须通过循环逻辑实现计数,可单独声明计数变量累加,参考代码:
@SuppressLint("SetTextI18n") private fun countName(x: String) { val textView: TextView = findViewById(R.id.result) var count = 0 for (i in 0 until x.length) { count += 1 } textView.text = count.toString() }
内容的提问来源于stack exchange,提问作者Tyler Thomas
相关产品推荐
相关产品推荐

