You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中调用sum()函数计算字符串内数字总和报错的问题求助

Kotlin中调用sum()函数计算字符串内数字总和报错的问题求助

嗨,我来帮你分析下问题出在哪,以及怎么解决:

首先你当前的代码有个核心误区:你定义的numbers是字符串类型,而Kotlin里String自带的sum()函数,作用是计算字符串中每个字符的Unicode编码值的总和,完全不是你想要的“把逗号分隔的数字加起来”的功能。至于你提到的“sum is unused”报错,大概率是因为这个sum()的用法和你预期的完全不匹配,编译器或IDE识别出这不是合理的使用方式,才给出了提示。

要实现把逗号分隔的字符串数字求和,你需要先把字符串转换成数字集合,再调用正确的sum()方法,具体步骤很简单:

  • 第一步:用split(",")把字符串按逗号分割成单个数字字符串的列表
  • 第二步:用map { it.toInt() }把每个字符串元素转换成Int类型(如果是小数就用toDouble())
  • 第三步:对转换后的数字列表调用sum(),这时候的sum()才是计算数字总和的正确方法

修改后的完整可运行代码如下:

fun main() {
    val numbers = "1,2,3,4,5,6"
    val result = numbers.split(",") // 分割得到["1","2","3","4","5","6"]
                       .map { it.toInt() } // 转换为Int列表[1,2,3,4,5,6]
                       .sum() // 计算数字总和
    println(result) // 输出结果21
}

另外给你两个小建议:

  • 把var numbers改成val,因为你不需要修改这个字符串的值,用val更符合Kotlin的编程习惯,也更安全
  • 如果你的字符串里可能包含空格、非数字内容,可以加个容错处理,避免转换失败导致程序崩溃,比如用mapNotNull { it.toIntOrNull() }来跳过无效内容,示例代码:
    fun main() {
        val numbers = "1,2, 3,abc,4,5,6" // 包含空格和非数字字符
        val result = numbers.split(",")
                           .map { it.trim() } // 先去掉每个元素的前后空格
                           .mapNotNull { it.toIntOrNull() } // 只保留能转换为Int的元素
                           .sum()
        println(result) // 依然输出21,自动跳过了无效内容
    }
    

这样修改后,就能完美实现你想要的数字求和功能啦~

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 14:54:33