Вы можете использовать distance(from:to:)
для вычисления (целочисленного) расстояния от String.Index
до начальной позиции строки:
let str = "abab"
for char in str {
if let idx = str.index(of: char) {
let distance = str.distance(from: str.startIndex, to: idx)
print(char, distance)
}
}
Но учтите, что index(of:)
возвращает сначала индекс символа в строке, поэтому приведенный выше код будет печатать
a 0
b 1
a 0
b 1
Если вы хотите получить смещение бега вместе с каждым символом в строке, используйте enumerated()
for (distance, char) in str.enumerated() {
print(char, distance)
}
Это напечатает
a 0
b 1
a 2
b 3