Swift 将字符串拆分为[[Int]]
我有一个Swift 将字符串拆分为[[Int]],swift,Swift,我有一个字符串,想把它拆分成一个[[Int]] let string = "1,2,3;4,5,6;7,8,9" // comma and semicolon separators! 结果应该是 [[1,2,3],[4,5,6],[7,8,9]] 我知道使用hot可以拆分为[Int] let string = "1,2,3,4,5,6,7,8,9" var intArray = string.split(separator: ","
字符串
,想把它拆分成一个[[Int]]
let string = "1,2,3;4,5,6;7,8,9" // comma and semicolon separators!
结果应该是
[[1,2,3],[4,5,6],[7,8,9]]
我知道使用hot可以拆分为[Int]
let string = "1,2,3,4,5,6,7,8,9"
var intArray = string.split(separator: ",").compactMap { Int($0) }
但我不知道如何将其拆分为[[Int]]
let string = "1,2,3;4,5,6;7,8,9" // comma and semicolon separators!
我试过了
var intArray = string.split(separator: ";").split(separator: ",").compactMap { Int($0) }
第一次拆分
创建了一个[String]
,但第二次拆分
不起作用
解决方案
一位朋友帮我解决了这个问题,所以我也想在这里提供解决方案:
var intArray = string.split(separator: ";").map { $0.split(separator: ",").compactMap { Int($0) } }
这就是你要找的班轮
import UIKit
let string = "1,2,3;4,5,6;7,8,9"
var intArray = string.split(separator: ";").map {$0.split(separator: ",").map {Int($0)!} }
print(intArray)
或者,您可以使用components
方法按分号拆分,在生成的数组上应用forEach
,以便附加相同的按逗号拆分的数组,在该数组上应用映射将其从[String]
转换为[Int]
var array : [[Int]] = []
string.components(separatedBy: ";").forEach { sub in
array.append((sub.components(separatedBy: ",")).map { Int($0)!} )
}
print(array)
两者都将输出:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
用分号分隔符拆分,然后用逗号分隔符拆分。看起来很简单。@matt我知道,但不知道怎么做似乎很简单。显示一些代码,我们可以埋头苦干,并帮助您。从头开始为您编写代码不是我们的工作。我知道我会怎么做,但我的想法是帮助你怎么做。请记住,split最初会为您提供子字符串;您需要将这些映射到字符串才能继续。您需要另一个
映射
,以便将第二次拆分应用于第一次拆分后的每个子字符串。有关类似任务,请参阅。在编辑到文章中的解决方案中,第一个(外部)compactMap
可以更改为map
,因为其主体不能返回nil
。