2014-07-13 22 views
49

In Objective-C possiamo chiamare componentsJoinedByString per produrre una stringa con ogni elemento dell'array separato dalla stringa fornita. Mentre Swift ha un metodo componentsSeparatedByString su String, là non sembra essere l'inverso di questo su Array:Swift equivalente di Array.componentsJoinedByString?

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

Qual è l'inverso di componentsSeparatedByString a Swift?

risposta

113

Swift 3.0:

Simile a Swift 2.0, ma API ridenominazione ha rinominato joinWithSeparator-joined(separator:).

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

// joinedString: String = "1, 2, 3, 4, 5" 

Vedere Sequence.join(separator:) per ulteriori informazioni.

Swift 2.0:

È possibile utilizzare il metodo joinWithSeparator su SequenceType di aderire a un array di stringhe con un separatore di stringa.

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

// joinedString: String = "1, 2, 3, 4, 5" 

Vedi SequenceType.joinWithSeparator(_:) per ulteriori informazioni.

Swift 1.0:

È possibile utilizzare la funzione di libreria standard join su String di aderire a un array di stringhe con una stringa.

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

// joinedString: String = "1, 2, 3, 4, 5" 

O se si preferisce, è possibile utilizzare la funzione di libreria standard globale:

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

// joinedString: String = "1, 2, 3, 4, 5" 
+0

Per simmetria, ho notato anche che esiste una funzione globale 'split', anche se sembra leggermente ingombrante da usare. Non c'è neanche un metodo 'split' su' Array' su tutto ciò che posso vedere, sfortunatamente. – devios1

7

I componenti JoinedByString sono ancora disponibili su NSArray, ma non su Swift Array. Puoi comunque fare il ponte avanti e indietro.

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

gamma Swift componentsSeparatedByString funziona per me in parco giochi con XCode Beta 3 senza il collegamento. Puoi provare questo? var commaSeperatedStr = "1, 2, 3, 4, 5" var arrayFromCommaSeperatedStr: Array = commaSeperatedStr.componentsSeparatedByString (","). Perché non l'opposto non potrebbe non capire. – mohacs

+0

sì, è valido. la domanda riguardava l'opposto se – connor

+0

ho premuto invio presto stavo scrivendo perché non di fronte non lo è. – mohacs