2016-05-01 19 views
2

Ich habe ein Array:Suchen und Ersetzen von Werten in einem Swift-Array?

var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

(nicht unbedingt in dieser Reihenfolge oder Zahlen, könnte sein: [4,9,15,12])

Ich möchte alle Instanzen von 10 mit A, 11 mit B, 12 mit C, 13 mit D, 14 mit ersetzen E, 15 mit F und dann outputLabel.text = array.joinWithSeperator("")

ich weiß schon, dass Wörter in einer Zeichenfolge ersetzen können Sie:

var myString = "Hello this is a test." 
var myDictionary = ["Hello":"Yo"] 

for (originalWord, newWord) in myDictionary { 
    let newString = aString.stringByReplacingOccurrencesOfDictionary(myString, withString:newWord, options: NSStringCompareOptions.LiteralSearch, range: nil) 
} 

Also würde das Suchen und Ersetzen von Werten in einem Array etwas ähnliches sein?

Antwort

3

Meinst du das Umwandeln von Zahlen von 1 bis 15 in ihre hexadezimale Darstellung?

let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 
let hexArray = array.map { String($0, radix: 16, uppercase: true) } 
0

Sie können dies tun, indem Sie die map Funktion, die Inferenz aufgrund Typ kann sehr kurz sein, wenn Sie mit den Typen konsistent sind:

let original = [1,2,3] 
let substitutionDictionary = [1: "A", 2: "B", 3: "C"] 
let substituted = original.map { substitutionDictionary[$0]! } // ["A","B","C"] 

Ich bin keine Annahmen über Ihre Absichten zu machen in Bezug auf ASCII-Konvertierung von Nummer zu Zeichen. Dies ist ein allgemeiner Ansatz.

0

Sie können einfach so etwas wie folgt verwenden:

let integers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] 
let a = UnicodeScalar("A").value 
let string = String(integers.map { Character(UnicodeScalar(UInt32($0) + a - 1)) }) 
// => string is now "ABCDEFGHIJKLMNO"