Swift 3:将字符串拆分为Int of Array

时间:2017-02-25 02:38:29

标签: arrays swift string

我试图将字符串拆分为整数数组:

let stringNumbers = "1 2 10"
var arrayIntegers = stringNumbers.characters.flatMap{Int(String($0))}

但我的问题是我得到了这个输出:

[1, 2, 1, 0]

当我得到这个输出时:

[1, 2, 10]

我做错了什么?

我非常感谢你的帮助。

3 个答案:

答案 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) }