如何将Swift数组转换为字符串?

22 浏览
0 Comments

如何将Swift数组转换为字符串?

我知道如何在程序中实现它,但我相信有内置的方法...

我使用的每种语言都有一种默认的文本表示,用于在尝试将数组与字符串连接或将其传递给print()函数等时输出。 苹果的Swift语言是否具有将数组轻松转换为字符串的内置方法,还是我们在对数组进行字符串处理时总是必须明确说明?

admin 更改状态以发布 2023年5月24日
0
0 Comments

使用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"

0
0 Comments

如果数组包含字符串,您可以使用 Stringjoin 方法:

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:"-")

0