【问题标题】:character extract from string in swift快速从字符串中提取字符
【发布时间】:2020-04-26 15:31:53
【问题描述】:

我的任务是用棋盘做点什么。输入为我们提供了一些国际象棋图形的起始位置。例如“b4”或“a6”或类似的东西。我如何分解输入并从中生成两个整数,就像在 C++ 中一样:

string input;
cin>>input

int coord_x = input[0] - 'a';

int coord_y = input[1]

我无法迅速做到这一点。我会这样做:

let input : String=readLine()!
let characters = Array(input)

然后尝试获取 int 但它不起作用,无论我尝试什么... swift中Array的内容是什么类型?

【问题讨论】:

    标签: swift character


    【解决方案1】:

    您可以像这样检索 c 字符串表示:

    let string = "a5"
    let scalars = string.lowercased().cString(using: .ascii)!
    
    let first = scalars[0]
    let second = scalars[1]
    

    检索 unicodeScalar 字符可能更安全:

    let string = "a5".lowercased()
    let characters = Array(string.unicodeScalars)
    
    let first = characters[0].value - UnicodeScalar(unicodeScalarLiteral: "a").value
    

    【讨论】:

    • Int8 始终可以表示为 Int(64),只需使用 Int(first) 转换即可。
    猜你喜欢
    • 1970-01-01
    • 2021-11-05
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2015-11-27
    • 2011-07-27
    • 2014-07-24
    • 1970-01-01
    相关资源
    最近更新 更多