【问题标题】:Swift equivalent of Array.componentsJoinedByString?Swift 等价于 Array.componentsJoinedByString?
【发布时间】:2014-07-13 21:13:06
【问题描述】:

在 Objective-C 中,我们可以调用 componentsJoinedByString 来生成一个字符串,其中数组的每个元素由提供的字符串分隔。虽然 Swift 在 String 上有一个 componentsSeparatedByString 方法,但在 Array 上似乎没有这个相反的方法:

'Array<String>' does not have a member named 'componentsJoinedByString'

Swift 中componentsSeparatedByString 的逆是什么?

【问题讨论】:

    标签: swift xcode6


    【解决方案1】:

    斯威夫特 3.0:

    与 Swift 2.0 类似,但 API 重命名已将 joinWithSeparator 重命名为 joined(separator:)

    let joinedString = ["1", "2", "3", "4", "5"].joined(separator: ", ")
    
    // joinedString: String = "1, 2, 3, 4, 5" 
    

    更多信息请参见Sequence.join(separator:)

    斯威夫特 2.0:

    您可以在SequenceType 上使用joinWithSeparator 方法来连接带有字符串分隔符的字符串数组。

    let joinedString = ["1", "2", "3", "4", "5"].joinWithSeparator(", ")
    
    // joinedString: String = "1, 2, 3, 4, 5" 
    

    更多信息请参见SequenceType.joinWithSeparator(_:)

    斯威夫特 1.0:

    您可以使用String 上的join 标准库函数将字符串数组与字符串连接起来。

    let joinedString = ", ".join(["1", "2", "3", "4", "5"])
    
    // joinedString: String = "1, 2, 3, 4, 5" 
    

    或者,如果您愿意,可以使用全局标准库函数:

    let joinedString = join(", ", ["1", "2", "3", "4", "5"])
    
    // joinedString: String = "1, 2, 3, 4, 5"
    

    【讨论】:

    • 为了对称,我还注意到有一个全局的split 函数,虽然它看起来有点麻烦。不幸的是,Array 上也没有 split 方法。
    【解决方案2】:

    componentsJoinedByString 在 NSArray 上仍然可用,但在 Swift 数组上不可用。不过,您可以来回桥接。

    var nsarr = ["a", "b", "c"] as NSArray
    var str = nsarr.componentsJoinedByString(",")
    

    【讨论】:

    • Swift 数组 componentsSeparatedByString 在没有桥接的 XCode Beta 3 的操场上为我工作。你能试试这个吗? var commaSeperatedStr = "1, 2, 3, 4, 5" var arrayFromCommaSeperatedStr : Array = commaSeperatedStr.componentsSeparatedByString(",")。为什么不对面不是看不懂。
    • 是的,这是有效的。问题恰恰相反
    • 我早早按回车我在写为什么不相反不是。
    • 我认为这是因为它仍在桥接 nsstring。如果您命令单击该方法,它将带您进入基础框架
    • 一个序列不是一个数组......我在这里仍然没有一个可行的答案,因为转换为 NSString 并返回是......好吧......跛脚。我认为“.reduce”在这里可能有用,但我还没有完成。
    猜你喜欢
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 2022-07-06
    • 2016-03-19
    • 2019-04-16
    • 2015-05-15
    相关资源
    最近更新 更多