我试图将字符串拆分为整数数组:
let stringNumbers = "1 2 10"
var arrayIntegers = stringNumbers.characters.flatMap{Int(String($0))}
但我的问题是我得到了这个输出:
[1, 2, 1, 0]
当我得到这个输出时:
[1, 2, 10]
我做错了什么?
我非常感谢你的帮助。
答案 0 :(得分:3)
您正在将字符串的各个字符转换为数字。首先是1
,然后是空格,然后是2
,然后是空格,然后是1
,最后是0
。如果使用nil
flatMap
你可以这样做:
let stringNumbers = "1 2 10"
var arrayIntegers = stringNumbers.components(separatedBy: " ").flatMap { Int($0) }
将原始字符串拆分为字符串数组(用空格分隔),然后将它们映射为整数。
答案 1 :(得分:3)
使用此
let stringNumbers = "1 2 10"
let array = stringNumbers.components(separatedBy: " ")
let intArray = array.map { Int($0)!} // [1, 2, 10]
答案 2 :(得分:0)
在 Swift 5 中是:
let stringNumbers = "1 2 10"
var arrayIntegers = stringNumbers.split(separator: " ").compactMap { Int($0) }