извлечение символа из строки в swift - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть задача что-то сделать с шахматной доской. Ввод дает нам стартовую позицию какой-то шахматной фигуры. Например, «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?

1 Ответ

1 голос
/ 26 апреля 2020

Вы можете получить строковое представление 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
...