Поиск слова в строке является одной самых популярных задач разработчика. В большинстве современных языков программирования данная функция включена в стандартную библиотеку. Go не исключение. Далее будет дан способ реализации данного поиска в Go.
Как найти слово в строке Golang?
Создайте файл contains.go
со следующим содержимым:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package main import ( "fmt" "strings" ) const refString = "Mary had a little lamb" func main() { lookFor := "lamb" contain := strings.Contains(refString, lookFor) fmt.Printf("The \"%s\" contains \"%s\": %t \n", refString, lookFor, contain) lookFor = "wolf" contain = strings.Contains(refString, lookFor) fmt.Printf("The \"%s\" contains \"%s\": %t \n", refString, lookFor, contain) startsWith := "Mary" starts := strings.HasPrefix(refString, startsWith) fmt.Printf("The \"%s\" starts with \"%s\": %t \n", refString, startsWith, starts) endWith := "lamb" ends := strings.HasSuffix(refString, endWith) fmt.Printf("The \"%s\" ends with \"%s\": %t \n", refString, endWith, ends) } |
1. Запустите код, выполнив go run contains.go
;
2. Посмотрите на вывод в терминале:
Как работает код поиска слов в строке?
В библиотеке strings есть функции для операций над строками. В данном случае используется функция Contains
. Функция Contains
просто проверяет, есть в рассматриваемой строке указанное слово, или подстрока. Фактически, в функции Contains
используется функция Index
.
Чтобы проверить, начинается ли строка с указанной подстроки, используется функция HasPrefix
. Чтобы проверить, заканчивается ли строка указанной подстрокой, используется функция HasSuffix
.
Фактически функция Contains
реализуется через использование функции Index
из того же пакета. Можно догадаться, что реализация осуществляется следующим образом: если индекс данной подстроки больше -1
, тогда функция Contains
возвращает true
.
Функции HasPrefix
и HasSuffix
работают иначе: внутренняя реализация просто проверяет длину строки и подстроки, и если они одинаковы или строка длиннее, тогда запрашиваемая часть строки сравнивается.
Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»