如何在Swift中将Int转换为字符

J-D*_*zle 32 int var character ios swift

我挣扎,未能超过十分钟在这里,我放弃.我需要一个Int转换为斯威夫特一个字符并不能解决它.

你如何在Swift中转换(强制转换)Int(整数)到Character(char)?

说明性问题/任务挑战

生成一个for循环,打印字母'A'到'Z',例如:

    for(var i:Int=0;i<26;i++) {      //Important to note - I know 
        print(Character('A' + i));   //this is horrendous syntax...
    }                                //just trying to illustrate! :)
Run Code Online (Sandbox Code Playgroud)

Nat*_*ook 30

你不能直接转换为整数的Character情况下,但你可以去从整数UnicodeScalarCharacter,然后再返回:

let startingValue = Int(("A" as UnicodeScalar).value) // 65
for i in 0 ..< 26 {
    print(Character(UnicodeScalar(i + startingValue)))
}
Run Code Online (Sandbox Code Playgroud)

  • 不过,UnicodeScalar 初始值设定项是可选的,而字符初始值设定项不采用可选值。你必须做一些更像“Character(UnicodeScalar(i +startingValue)!)”的事情 (2认同)

Sau*_*ati 9

试试这个

for i in 0...25
{
    let string = String(format: "%c", i+65) as String
    NSLog("%@", string)
}
Run Code Online (Sandbox Code Playgroud)


vac*_*ama 9

到目前为止,我已经想出了这个:

for i in 0 ..< 26 {
    print(Character(UnicodeScalar(Int(UnicodeScalar("A").value) + i)))
}
Run Code Online (Sandbox Code Playgroud)

如果您只是尝试将"A"生成为"Z",则可以避免数学运算,只需:

for c in UnicodeScalar("A").value...UnicodeScalar("Z").value {
    print(String(UnicodeScalar(c)))
}
Run Code Online (Sandbox Code Playgroud)


Sur*_*gch 8

如何在Swift中将Int转换为字符

为了未来的访问者,我提供问题标题的基本答案,而不是问题本身的细节.

这是一个两步的过程.转换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
Run Code Online (Sandbox Code Playgroud)

(资源)

或者......

if let myUnicodeScalar = UnicodeScalar(97) 
    let myCharacter = Character(myUnicodeScalar)
}
Run Code Online (Sandbox Code Playgroud)

也可以看看