Стремительный подсчет, сколько одинакового слова в строке - PullRequest
0 голосов
/ 09 марта 2020

Я хочу иметь возможность подсчитать, сколько раз слово / фраза существует в строке.

Я пытаюсь:

 let counter =  htmlString.components(separatedBy:"href=\"/user/")

Но это дает мне 11, когда есть на странице всего 10.

Я получаю их отсюда через исходный код. Я не использую способ. json, так как мне нужно получить URL-адрес аватара et c.

https://www.reddit.com/r/pics/about/moderators

1 Ответ

0 голосов
/ 09 марта 2020

Получать 11 имеет смысл.

Подумайте об этом примере:

"ababa".components(separatedBy: "b")

Если вы разделите строку везде, где появляется «b», вы получите 3 строки, которые все » a ", поэтому вам нужно вычесть 1, чтобы получить нужный ответ: 2.

Это работает, даже если между тем, что вы ищете, нет других символов:

"bb".components(separatedBy: "b")

Приведенный выше код возвращает 3 пустых строки, поэтому вы все равно не можете взять число и вычесть 1, чтобы получить желаемое число.

Также см. аналогичный вопрос с соответствующими ответами: Количество вхождений подстроки в строку в Swift

...