Swift:如何将一个字符串数组拆分成多个匹配值数组?

Bay*_*ell 4 arrays sorting uitableview swift swift2

假设我有一组值(按字母顺序排列),例如[A, B, B, B, D, G, G, H, M, M, M, M, Z]表示用户的姓氏.我期待创建表的索引,那么什么是分离这样一个数组(任意数量的与字母表中的所有字母开头的姓氏的用户)到阵列,如最好的方式[A] [B, B, B] [D] [G, G] [H] [M, M, M, M] [Z],这似乎是最好的办法为具有多个部分的表创建值,其中用户以姓氏分隔.谢谢你的帮助!

jtb*_*des 11

您可以使用name.characters.first获取名称的初始值,并通过比较它们来构建数组数组:

let names = ["Aaron", "Alice", "Bob", "Charlie", "Chelsea", "David"]

var result: [[String]] = []
var prevInitial: Character? = nil
for name in names {
    let initial = name.characters.first
    if initial != prevInitial {  // We're starting a new letter
        result.append([])
        prevInitial = initial
    }
    result[result.endIndex - 1].append(name)
}

print(result)  // [["Aaron", "Alice"], ["Bob"], ["Charlie", "Chelsea"], ["David"]]
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

3905 次

最近记录:

9 年,4 月 前