swift中字符串的字符提取



我有一项任务要用棋盘做一些事情。输入给我们一些国际象棋图形的起始位置。例如"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中的数组内容是什么类型的?

您可以检索如下的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

最新更新