我有一个数组:
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)
}
那么搜索和替换数组中的值是否类似?
答案 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"