嘿伙计们我有字符串" 69 - 13"如何检测" - "在字符串中以及如何对字符串69 + 13 = 82中的数字求和?
答案 0 :(得分:0)
有多种方法可以做到这一点(componentsSeparatedByString
,NSScanner
,...)。
这里只使用Swift库函数:
let str = "69 - 13"
// split string into components:
let comps = split(str, { $0 == "-" || $0 == " " }, maxSplit: Int.max, allowEmptySlices: false)
// convert strings to numbers (use zero if the conversion fails):
let nums = map(comps) { $0.toInt() ?? 0 }
// compute the sum:
let sum = reduce(nums, 0) { $0 + $1 }
println(sum)
答案 1 :(得分:0)
以下是Swift 4中的更新实现,它依赖于更高阶函数来执行操作:
let string = "69+13"
let number = string.components(separatedBy: CharacterSet.decimalDigits.inverted)
.compactMap({ Int($0) })
.reduce(0, +)
print(number) // 82
components(separatedBy: CharacterSet.decimalDigits.inverted)
删除所有非数字值并为每组值创建一个数组(在本例中为69和13) Int($0)
将您的string
值转换为Int
compactMap
删除任何零值,确保只保留有效值
reduce
然后总结数组中剩余的值