【问题标题】:I want to get Int value range 0-25 from a-z in Swift. And also reversely [duplicate]我想在 Swift 中从 a-z 获取 Int 值范围 0-25。而且还反过来[重复]
【发布时间】:2021-08-07 01:40:32
【问题描述】:

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

【问题讨论】:

  • 你能添加一个你已经完成的实际代码的sn-p吗?
  • 你可以用字典。

标签: swift integer alphabet


【解决方案1】:

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?)

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

【讨论】:

  • 答案有什么问题?
  • 不鼓励仅链接的答案。虽然链接可能链接到重要资源,但您应该将相关部分添加到您的答案中(不一定要删除链接)。在这种情况下,如果链接发生变化或离线,您的回答仍然很有价值。
【解决方案2】:
//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}

【讨论】:

    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 2018-03-26
    • 2021-09-12
    • 1970-01-01
    • 2018-05-15
    • 2017-02-14
    • 1970-01-01
    • 2018-09-07
    相关资源
    最近更新 更多