微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想在 Swift 中从 a-z 获取 Int 值范围 0-25而且还反过来

如何解决我想在 Swift 中从 a-z 获取 Int 值范围 0-25而且还反过来

我想以这种方式将字母转换为数字:a=0,b=1,c=2 ... z=25 在 Swift 中。 我有一个范围为 0-25 的整数数组。我想从 Int 数组中获取字母。 如果我有一个字符数组,我怎样才能得到一个 Int 数组?

解决方法

//Create an array of UInt8 vaues:
var array = [UInt8]()
for _ in 1...20 {
    array.append(UInt8.random(in: 0...25))
}

//Now map the array of values to characters 'a' to 'z'
let charArray = array.map {UnicodeScalar($0 + (Character("a").asciiValue ?? 0))}

charArray.forEach { print($0) }

//Now map the char array back to int values

let valueOfA = Character("a").asciiValue ?? 0
let charToUIntArray = charArray.map { (Character($0).asciiValue ?? 0) - valueOfA}
,

How to get string from ASCII code in Swift?

如果您向数字添加偏移量并使用 Character 初始值设定项将此数字分配给您的字符,您可以使您的数字与正确的字符匹配。

func getChar(number: Int)->Character{
    return Character(UniCodeScalar(number+97))
}

相反,您可以使用 asciiValue 属性。

(What's the simplest way to convert from a single character String to an ASCII value in Swift?)

之后,您可以遍历数组并使用示例函数进行转换。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。