Ios 如何在Swift中将整型转换为字符
我在这里挣扎了十多分钟,失败了,我屈服了。我需要在Swift中将整型转换为字符,但无法解决它 问题 在Swift中如何将Ios 如何在Swift中将整型转换为字符,ios,swift,int,character,var,Ios,Swift,Int,Character,Var,我在这里挣扎了十多分钟,失败了,我屈服了。我需要在Swift中将整型转换为字符,但无法解决它 问题 在Swift中如何将Int(整数)转换为字符(字符) 说明性问题/任务挑战 生成用于打印字母“a”到“Z”的for循环,例如: for(var i:Int=0;i<26;i++) { //Important to note - I know print(Character('A' + i)); //this is horrendous syntax..
Int
(整数)转换为字符(字符)
说明性问题/任务挑战
生成用于打印字母“a”到“Z”的for循环,例如:
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! :)
for(var i:Int=0;i试试这个
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)))
}
不能将整数直接转换为字符
实例,但可以从整数转换为UnicodeScalar
再转换为字符
:
let startingValue = Int(("A" as UnicodeScalar).value) // 65
for i in 0 ..< 26 {
print(Character(UnicodeScalar(i + startingValue)))
}
let startingValue=Int((“A”作为UnicodeScalar.value)//65
对于0..<26中的i{
打印(字符(UnicodeScalar(i+起始值)))
}
有关有用的上下文,请使用vacawama和Nate Cook的UnicodeScalar-
let startingValue = Int(UnicodeScalar("A").value)
for i in 0..<26 {
let itemStr = String(UnicodeScalar(i + startingValue))
items.append("Item " + itemStr)
}
let startingValue=Int(UnicodeScalar(“A”).value)
对于0中的i..如何在Swift中将Int转换为字符
为了将来的访问者,我提供了问题标题的基本答案,而不是问题本身的细节
这是一个两步过程。将Int
转换为UnicodeScalar
,然后将UnicodeScalar
转换为字符
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)
}
另见
这里是Int的一个扩展,用于提供相应的字母函数:
extension Int {
func correspondingLetter(inUppercase uppercase: Bool = false) -> String? {
let firstLetter = uppercase ? "A" : "a"
let startingValue = Int(UnicodeScalar(firstLetter)!.value)
if let scalar = UnicodeScalar(self + startingValue) {
return String(scalar)
}
return nil
}
}
请注意,如果int大于26,您将获得特殊字符。新建和更新
for charac in Unicode.Scalar("A").value...Unicode.Scalar("Z").value {
print(Unicode.Scalar(charac)!, terminator:" ")}
印刷品:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
感谢@vacawama的帮助,我喜欢这个版本,特别是对于Swift(5),因为:
for charac in Unicode.Scalar("a").value...Unicode.Scalar("z").value {
print(Unicode.Scalar(charac)!, terminator:" ")}
印刷品:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
不必查找,即使我们应该知道我们的unicode?哈哈等等。只需将整数转换为字符串,然后将字符串转换为字符
let number = 5
let numChar = Character(String(number))
好吧,好吧……你说得对,我讨厌这样。完成了!这是C风格,如果有人想要的话-for(var I:Int=0;igood catch。我用“items.append”(“items.append”(“Item”@'),itemStr)的建议替换了原来的“items.append(String(format:“Item”@'),itemStr))”不过,UnicodeScalar初始值设定项是可选的,而字符初始值设定项不接受可选值。您必须执行类似于Character(UnicodeScalar(i+startingValue)!)的操作。