【问题标题】:substring with an array string - Swift带有数组字符串的子字符串 - Swift
【发布时间】:2015-09-11 15:59:51
【问题描述】:

我有一个数组:

var array = ["1|First", "2|Second", "3|Third"]

如何切断“1|”、“2|”、“3|”?
结果应如下所示:

println(newarray) //["First", "Second", "Third"]

【问题讨论】:

    标签: ios arrays swift substring


    【解决方案1】:

    您可以使用(假设字符串将包含“|”字符):

    let newarray = array.map { $0.componentsSeparatedByString("|")[1] }
    

    正如@Grimxn 指出的那样,如果您不能假设“|”字符将始终在字符串中,请使用:

    let newarray = array.map { $0.componentsSeparatedByString("|").last! }
    

    let newarray2 = array.map { $0.substringFromIndex(advance(find($0, "|")!, 1)) }
    

    result2 可能会快一点,因为它不会从 componentsSeparatedByString 创建中间数组。

    或者如果你想修改原始数组:

    for index in 0..<array.count {
        array[index] = array[index].substringFromIndex(advance(find(array[index], "|")!, 1))
    }
    

    【讨论】:

    • Swift 1.2 语法:map(array) { $0.componentsSeparatedByString("|")[1] } 答案是 swift 2.0
    • 其实,我的也是 Swift 1.2
    • 操作,我的错。 Swift 1.2 有 map() 作为全局函数和数组函数
    • 如果 "|" 这个解决方案会崩溃不存在。试试var array = ["1|First", "2|Second", "3|Third", "Fourth"]。考虑将解决方案更改为let newarray = array.map { $0.componentsSeparatedByString("|").last! }
    猜你喜欢
    • 2020-11-20
    • 2018-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多