Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmTxSb 314 of 350 menu
◀ ▶

Подстрока в Go

Фрагмент строки получают срезом: в квадратных скобках указывают начало и конец, как у среза массива. Такой срез режет байты исходного текста, а не символы: для латиницы номера совпадают, для букв вне ASCII - нет.

Возьмем кусок латинской строки по байтам:

package main import "fmt" func main() { str := "garden" part := str[1:4] fmt.Println(part) }

Чтобы резать по символам, текст переводят в []rune, берут срез рун и снова собирают строку через string:

package main import "fmt" func main() { word := "café" runes := []rune(word) byBytes := word[:4] byRunes := string(runes[:3]) fmt.Println(byBytes) fmt.Println(byRunes) // выведет caf }

У слова "café" буква "é" занимает два байта. Срез первых четырех байт захватывает начало этой буквы и обрывает ее. Три первые руны дают целые буквы "caf".

Дана строка:

str := "garden"

Получите фрагмент с второго по четвертый символ и выведите его в консоль.

Дана строка:

str := "user@mail.com"

Получите часть строки до символа '@' и выведите ее в консоль.

Дана строка:

str := "home/docs/readme.md"

Получите часть строки после последнего слэша и выведите ее в консоль.

Дана строка:

str := "https://site.com/page?q=1"

Получите часть до последнего знака '?' и выведите ее в консоль.

Дана строка:

str := "time:12:30:45"

Получите часть после первого двоеточия и выведите ее в консоль.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить