¿Cómo convierto una matriz Swift en una cadena?

Resuelto Troy asked hace 54 años • 25 respuestas

Sé cómo hacerlo mediante programación, pero estoy seguro de que hay una forma integrada...

Cada lenguaje que he usado tiene algún tipo de representación textual predeterminada para una colección de objetos que escupirá cuando intentes concatenar el Array con una cadena, o pasarlo a una función print(), etc. ¿El lenguaje Swift de Apple ¿Tenemos una forma incorporada de convertir fácilmente una matriz en una cadena, o siempre tenemos que ser explícitos al encadenar una matriz?

Troy avatar Jan 01 '70 08:01 Troy
Aceptado

Si la matriz contiene cadenas, puede utilizar el Stringmétodo join:

var array = ["1", "2", "3"]

let stringRepresentation = "-".join(array) // "1-2-3"

En Swift 2 :

var array = ["1", "2", "3"]

let stringRepresentation = array.joinWithSeparator("-") // "1-2-3"

Esto puede resultar útil si desea utilizar un separador específico (guión, espacio en blanco, coma, etc.).

De lo contrario, puedes simplemente usar la descriptionpropiedad, que devuelve una representación de cadena de la matriz:

let stringRepresentation = [1, 2, 3].description // "[1, 2, 3]"

Sugerencia: cualquier objeto que implemente el Printableprotocolo tiene una descriptionpropiedad. Si adopta ese protocolo en sus propias clases/estructuras, también las hará fáciles de imprimir.

En rápido 3

  • joinse convierte en joined, ejemplo[nil, "1", "2"].flatMap({$0}).joined()
  • joinWithSeparatorse convierte en joined(separator:)(solo disponible para Array of Strings)

En rápido 4

var array = ["1", "2", "3"]
array.joined(separator:"-")
Antonio avatar Sep 13 '2014 19:09 Antonio

Con Swift 5, según sus necesidades, puede elegir uno de los siguientes códigos de muestra de Playground para resolver su problema.


Convertir una matriz de Characters en Stringsin separador:

let characterArray: [Character] = ["J", "o", "h", "n"]
let string = String(characterArray)

print(string)
// prints "John"

Convertir una matriz de Strings en Stringsin separador:

let stringArray = ["Bob", "Dan", "Bryan"]
let string = stringArray.joined(separator: "")

print(string) // prints: "BobDanBryan"

Convertir una matriz de Strings en a Stringcon un separador entre palabras:

let stringArray = ["Bob", "Dan", "Bryan"]
let string = stringArray.joined(separator: " ")

print(string) // prints: "Bob Dan Bryan"

Convertir una matriz de Strings en a Stringcon un separador entre caracteres:

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"

Convertir una matriz de Floats en a Stringcon un separador entre números:

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"
Imanou Petit avatar Dec 16 '2015 14:12 Imanou Petit