Что быстрее / лучше использовать для коротких (ish) строк: Split или Substring? - PullRequest
0 голосов
/ 13 июня 2019

Swift 5, Xcode 10.

Я зацикливаюсь на массиве строк (размер, вероятно, <20), каждая из которых выглядит примерно так: </p>

johnsmith.20190202102030.conf
janedoe.19700101115959.conf

Я знаюпервая часть (имя) заранее, но нужно извлечь среднюю часть (день рождения: длина 8, 12 или 14 символов).

версия 1:

let f = "johnsmith.20190202102030.conf"
let name = "johnsmith"

let start = f.index(f.startIndex, offsetBy: name.count+1)
let end = f.index(f.startIndex, offsetBy: f.count-5)

let birthday = String(f[start..<end])

версия 2:

let f = "johnsmith.20190202102030.conf"
let farr = f.split(separator: ".").map(String.init)
let birthday = farr[1]

В настоящее время я делаю это только для 10 струн и (конечно) не заметил никакой разницы в скорости.Даже с 100 строками, вероятно, в любом случае не будет большой разницы, но мне любопытно:

Игнорирование длины кода и потенциальных ошибок, есть ли причина (кроме личных предпочтений), чтобы предпочесть использованиеодна версия над другой (например, скорость с 100k строк - я не прошу фактических измерений!)?

1 Ответ

1 голос
/ 13 июня 2019

Из моего очень грубого тестирования кажется, что версия подстроки быстрее.Тем не менее, в вашем случае я бы выбрал версию, использующую split.Код гораздо более читабелен для меня.

...