如何将Swift数组转换为字符串?
如何将Swift数组转换为字符串?
我知道如何在程序中实现它,但我相信有内置的方法...
我使用的每种语言都有一种默认的文本表示,用于在尝试将数组与字符串连接或将其传递给print()函数等时输出。 苹果的Swift语言是否具有将数组轻松转换为字符串的内置方法,还是我们在对数组进行字符串处理时总是必须明确说明?
admin 更改状态以发布 2023年5月24日
使用Swift 5,根据您的需要,您可以选择以下Playground示例代码之一,以解决您的问题。
将字符数组转换为没有分隔符的字符串:
let characterArray: [Character] = ["J", "o", "h", "n"] let string = String(characterArray) print(string) // prints "John"
将字符串数组转换为没有分隔符的字符串:
let stringArray = ["Bob", "Dan", "Bryan"] let string = stringArray.joined(separator: "") print(string) // prints: "BobDanBryan"
将字符串数组转换为在单词之间有分隔符的字符串:
let stringArray = ["Bob", "Dan", "Bryan"] let string = stringArray.joined(separator: " ") print(string) // prints: "Bob Dan Bryan"
将字符串数组转换为在字符之间有分隔符的字符串:
let stringArray = ["car", "bike", "boat"] let characterArray = stringArray.flatMap { $0 } let stringArray2 = characterArray.map { String($0) } let string = stringArray2.joined(separator: ", ") print(string) // prints: "c, a, r, b, i, k, e, b, o, a, t"
将浮点数数组转换为在数字之间有分隔符的字符串:
let floatArray = [12, 14.6, 35] let stringArray = floatArray.map { String($0) } let string = stringArray.joined(separator: "-") print(string) // prints "12.0-14.6-35.0"
如果数组包含字符串,您可以使用 String
的 join
方法:
var array = ["1", "2", "3"] let stringRepresentation = "-".join(array) // "1-2-3"
在Swift 2中:
var array = ["1", "2", "3"] let stringRepresentation = array.joinWithSeparator("-") // "1-2-3"
如果要使用特定的分隔符(连字符、空格、逗号等),这很有用。
否则,您可以简单地使用 description
属性,该属性返回数组的字符串表示形式:
let stringRepresentation = [1, 2, 3].description // "[1, 2, 3]"
提示:任何实现 Printable
协议的对象都具有 description
属性。如果您在自己的类/结构中采用该协议,也将使它们具有打印友好性。
在Swift 3中
join
变成了joined
,示例[nil, "1", "2"].flatMap({$0}).joined()
joinWithSeparator
变成了joined(separator:)
(仅适用于字符串数组)
在Swift 4中
var array = ["1", "2", "3"] array.joined(separator:"-")