我知道如何通过编程来做到这一点,但我相信有一种内置的方式……
我使用过的每种语言都有某种对象集合的默认文本表示,当您试图将Array与字符串连接起来或将其传递给print()函数等时,它会吐出这些文本表示。苹果的Swift语言是否有一种内置的方式,可以轻松地将数组转换为字符串,或者我们总是必须显式地对数组进行字符串化?
我知道如何通过编程来做到这一点,但我相信有一种内置的方式……
我使用过的每种语言都有某种对象集合的默认文本表示,当您试图将Array与字符串连接起来或将其传递给print()函数等时,它会吐出这些文本表示。苹果的Swift语言是否有一种内置的方式,可以轻松地将数组转换为字符串,或者我们总是必须显式地对数组进行字符串化?
当前回答
如果你想在数组中丢弃空字符串。
["Jet", "Fire"].filter { !$0.isEmpty }.joined(separator: "-")
如果你也想过滤nil值:
["Jet", nil, "", "Fire"].flatMap { $0 }.filter { !$0.isEmpty }.joined(separator: "-")
其他回答
你可以使用循环来完成这个任务。或者使用地图。
通过映射:
let array = ["one" , "two" , "three"]
array.map({$0}).joined(seperator : ",")
在分隔符中,你可以修改字符串。
Output-> ("one,two,three")
可以使用print函数打印任何对象
或者使用\(name)将任何对象转换为字符串。
例子:
let array = [1,2,3,4]
print(array) // prints "[1,2,3,4]"
let string = "\(array)" // string == "[1,2,3,4]"
print(string) // prints "[1,2,3,4]"
如果你的问题是这样的: tobeFormattedString = ["a", "b", "c"] 输出= "abc"
String(tobeFormattedString)
在Swift 2.2中,你可能不得不将数组转换为NSArray来使用componentsJoinedByString(",")
let stringWithCommas = (yourArray as NSArray).componentsJoinedByString(",")
如果你想在数组中丢弃空字符串。
["Jet", "Fire"].filter { !$0.isEmpty }.joined(separator: "-")
如果你也想过滤nil值:
["Jet", nil, "", "Fire"].flatMap { $0 }.filter { !$0.isEmpty }.joined(separator: "-")