欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Swift语言中整数和字符相互转换,Int、Character

程序员文章站 2022-06-10 22:17:44
...

IntCharacter

Character类没有以Int作为参数的初始化方法,但Character能通过UnicodeScalar类型来初始化,而UnicodeScalar类型又能通过Int类型来初始化。

 

 

//Int转Character代码
//number是一个整数
var number = 65
//转换成character字符
var character = Character(UnicodeScalar(number))

 

 

CharacterInt

 

相比之下,CharacterInt稍微复杂,没有任何现成的函数可用。只能把Character变量转为String类型,再利用循环取出String里面的唯一一个字符的Unicode编码,最后转为整数。

//Character转Int代码
//characterB是一个Character变量
var characterB:Character = "B"
//numberFromB用于接收转换后的整数,先暂时初始化为0
var numberFromB = 0
//使用for-in循环遍历转化成String的“B”
for scalar in String(characterB).unicodeScalars
{
    //字符串只有一个字符,这个循环只会执行1次
    numberFromB = Int(scalar.value)
}
//最后得到numberFromB=66

 

 

但是如果需要频繁将Character转成Int,上述代码使用起来未免太麻烦。一个比较好的做法是把上述运算写成Character类型的一个扩展方法,方便以后直接调用。

//Character扩展代码
extension Character
{
    func toInt() -> Int
    {
        var intFromCharacter:Int = 0
        for scalar in String(self).unicodeScalars
        {
            intFromCharacter = Int(scalar.value)
        }
        return intFromCharacter
    }
}

 

//以后可以直接对Character变量调用toInt()方法

var characterB:Character = "B"
var numberFromB = characterB.toInt()
//这样就得到numberFromB=66