0Pricing
Go Academy · Урок

Функции пакета strings

Разделяйте, объединяйте и обрезайте строки

«Функции пакета strings» — бесплатный урок Go Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Go Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Go Academy содержит 4 уроков всего.

Пакет strings

Пакет стандартной библиотеки strings предоставляет готовые вспомогательные средства для работы с текстом: поиск, разделение, объединение, обрезку и изменение регистра.

Импортируйте его с помощью import "strings".

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.ToUpper("hello"))
}

Contains и HasPrefix

Проверяйте наличие подстрок без написания циклов:

  • strings.Contains(s, sub) сообщает, встречается ли sub.
  • strings.HasPrefix и strings.HasSuffix проверяют начало и конец строки.
package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "golang"
    fmt.Println(strings.Contains(s, "lan"))
    fmt.Println(strings.HasPrefix(s, "go"))
}

Поиск позиции

strings.Index(s, sub) возвращает байтовый индекс первого совпадения или -1, если совпадение не найдено.

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Index("chocolate", "col"))
    fmt.Println(strings.Index("chocolate", "xyz"))
}

Разделение строки

strings.Split(s, sep) разбивает строку на срез, используя разделитель.

Эта функция отлично подходит для разбора данных в формате CSV.

package main

import (
    "fmt"
    "strings"
)

func main() {
    parts := strings.Split("a,b,c", ",")
    fmt.Println(parts)
    fmt.Println(len(parts))
}

Разделение по пробельным символам

strings.Fields(s) разделяет строку по любой последовательности пробельных символов и удаляет пустые части. Это идеальный вариант для подсчёта слов.

package main

import (
    "fmt"
    "strings"
)

func main() {
    words := strings.Fields("  the   quick brown  fox ")
    fmt.Println(words)
    fmt.Println(len(words))
}

Объединение срезов

strings.Join(slice, sep) — обратная операция к Split: она соединяет элементы среза с помощью разделителя.

package main

import (
    "fmt"
    "strings"
)

func main() {
    parts := []string{"2026", "05", "30"}
    fmt.Println(strings.Join(parts, "-"))
}

Удаление пробелов

strings.TrimSpace(s) удаляет пробельные символы в начале и конце строки, что особенно удобно для очистки пользовательского ввода.

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.TrimSpace("   hi there   ") + "!")
}

Удаление определённых символов

strings.Trim(s, cutset) удаляет любые из указанных символов с обоих концов строки. TrimPrefix и TrimSuffix удаляют точные строки.

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Trim("***name***", "*"))
    fmt.Println(strings.TrimSuffix("file.txt", ".txt"))
}

Замена текста

strings.ReplaceAll(s, old, new) заменяет каждое вхождение. Используйте strings.Replace(s, old, new, n), чтобы ограничить замену первыми n совпадениями.

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.ReplaceAll("a-b-c", "-", "+"))
    fmt.Println(strings.Replace("a-b-c", "-", "+", 1))
}

Повторение и подсчёт

Ещё две полезные функции:

  • strings.Repeat(s, n) создаёт строку из повторяющихся фрагментов.
  • strings.Count(s, sub) подсчитывает неперекрывающиеся вхождения.
package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Repeat("ab", 3))
    fmt.Println(strings.Count("banana", "a"))
}

Комбинирование функций

Эти вспомогательные функции хорошо сочетаются. Здесь мы обрезаем, разделяем и снова объединяем неаккуратную строку в чистый список, разделённый запятыми.

package main

import (
    "fmt"
    "strings"
)

func main() {
    raw := "  go  rust  zig  "
    words := strings.Fields(raw)
    fmt.Println(strings.Join(words, ", "))
}

Быстрая проверка

Выберите функцию, которая объединяет срез в одну строку.

Повторение: функции strings

Теперь у Вас есть набор инструментов для работы с текстом:

  • Поиск: Contains, Index, HasPrefix.
  • Разделение: Split, Fields.
  • Объединение: Join, Repeat.
  • Очистка: TrimSpace, Trim, ReplaceAll.
package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "  Hello, Go World  "
    fmt.Println(strings.ToLower(strings.TrimSpace(s)))
}

Часто задаваемые вопросы

Урок «Функции пакета strings» бесплатный?

Да — полный текст урока «Функции пакета strings» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Go Academy, подпишись на CoddyKit PRO. Курс Go Academy содержит 4 уроков всего.

Чему я научусь в уроке «Функции пакета strings»?

Разделяйте, объединяйте и обрезайте строки Ты практикуешь Go Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Go Academy?

Предыдущий опыт не требуется. Go Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Функции пакета strings»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Go Academy?

Да. Каждый урок Go Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Руны и байты
  2. Функции пакета strings
  3. strings.Builder
  4. Unicode и utf8
← Назад к Go Academy