我需要一个函数用字符A..J连续替换数字0..9。如何在Swift 3中编写它?Swift 3的字符串操作是如此奇怪:我尝试访问字符,然后添加和偏移(移位)字符,但是没有成功。
这是一个对您的问题也可能是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
。
从一个字符到另一个字符的映射通过以下过程进行:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句