我需要一个函数来连续替换数字0..9和字符A..J。 如何在Swift 3中编写它? Swift 3字符串操作非常奇怪:| 我尝试访问字符,然后添加和偏移(移位)字符,但没有成功。
答案 0 :(得分:4)
以下是您的问题的可能解决方案,也是Unicode安全的:
let string = "0123456789 abc xyz 9876543210"
// upper case A...J use 65; lower case a...j use 97
let shift = 65
let convertedString = String(string.characters.lazy.map{ char in
Int(String(char)).map{ Character(UnicodeScalar($0 + shift)!) } ?? char
})
将字符串的每个字符映射到另一个(或相同的)字符:0 ... 9 - > A ...... J,其他一切都待在了
出于大字符串的性能原因,请使用lazy
字符集。非懒惰的人会创建一个中间Array
。
从一个角色到另一个角色的映射将经历以下过程: