带有数组字符串的子字符串 - Swift

Posted

技术标签:

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

我有一个数组:

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

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

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

【问题讨论】:

【参考方案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!

以上是关于带有数组字符串的子字符串 - Swift的主要内容,如果未能解决你的问题,请参考以下文章

使用 Swift 对字符串中的子字符串进行索引

如何在 Swift 中获取字符串的子字符串? [复制]

swift Swift中分隔符之前的子字符串(对于具有关联类型的枚举有用)

Swift 2.0 - 按子数组重新排列 JSON 对象

如何修复不推荐使用的子字符串(带有:)

带有嵌套数组的 NSPredicate