如何在Swift数组中搜索和替换值?

时间:2016-05-01 10:32:11

标签: arrays swift

我有一个数组:

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

(不一定按顺序或数字,可以是:[4,9,15,12])

我想用A代替所有10的实例,用B代替11,用C代替12,用D代替13,用E代替14,用F代替15 outputLabel.text = array.joinWithSeperator("")

我已经知道要替换字符串中的单词,您可以:

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)
}

那么搜索和替换数组中的值是否类似?

3 个答案:

答案 0 :(得分:3)

您的意思是将数字从1转换为15到十六进制字符串表示吗?

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) }

答案 1 :(得分:0)

您可以使用map函数执行此操作,如果您与类型一致,则类型推断可以非常简洁:

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

我没有对你从数字到字符的ASCII转换的意图做出任何假设。这是一种通用方法。

答案 2 :(得分:0)

你可以简单地使用这样的东西:

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"