你不能直接转换为整数的Character
情况下,但你可以去从整数UnicodeScalar
到Character
,然后再返回:
let startingValue = Int(("A" as UnicodeScalar).value) // 65 for i in 0 ..< 26 { print(Character(UnicodeScalar(i + startingValue))) }
试试这个
for i in 0...25 { let string = String(format: "%c", i+65) as String NSLog("%@", string) }
到目前为止,我已经想出了这个:
for i in 0 ..< 26 { print(Character(UnicodeScalar(Int(UnicodeScalar("A").value) + i))) }
如果您只是尝试将"A"生成为"Z",则可以避免数学运算,只需:
for c in UnicodeScalar("A").value...UnicodeScalar("Z").value { print(String(UnicodeScalar(c))) }
为了未来的访问者,我提供问题标题的基本答案,而不是问题本身的细节.
这是一个两步的过程.转换Int
为a UnicodeScalar
,然后将其转换UnicodeScalar
为a Character
.
let myInteger: Int = 97 // convert Int to a valid UnicodeScalar guard let myUnicodeScalar = UnicodeScalar(myInteger) else { return } // convert UnicodeScalar to Character let myCharacter = Character(myUnicodeScalar) // results print(myCharacter) // a
(资源)
或者......
if let myUnicodeScalar = UnicodeScalar(97) let myCharacter = Character(myUnicodeScalar) }也可以看看
如何使用Unicode十六进制值(UTF-16)在Swift中表达字符串
在Swift中使用Unicode代码点