Kotlin中如何将存储数字运算的字符串转为数值并得到计算结果
字符串表达式求和解决方案
方法一:纯加法场景直接分割求和
你的表达式只有加法运算符,最直接的方式是按+分割字符串,将每个部分转为Double后累加:
let string = "5+7+10" // 按加号分割得到数字字符串数组 let numberStrs = string.components(separatedBy: "+") // 转换为Double数组,自动过滤转换失败的元素 let numbers = numberStrs.compactMap { Double($0) } // 累加求和 let total = numbers.reduce(0.0, +) print(total) // 输出 22.0
这种方法无需单独处理运算符逻辑,简单高效,适合纯加法场景。
方法二:通用算术表达式解析(支持多运算符)
如果后续需要处理包含减、乘、除的复杂表达式,可使用NSExpression自动解析计算:
import Foundation let string = "5+7+10" if let expression = NSExpression(format: string), let result = expression.expressionValue(with: nil, context: nil) as? Double { print(result) // 输出 22.0 }
该方法会自动处理表达式内的运算符逻辑,无需手动拆分和计算,通用性更强。
内容的提问来源于stack exchange,提问作者PuzzleHead
相关产品推荐
相关产品推荐

