/
Программирование
/
Курс Golang
/

Полезные функции для строк

Golang: Полезные функции для строк

Go предоставляет набор функций для работы со строками в пакете strings. Эти функции не требуют создания новых типов и работают напрямую со значениями типа string.

Чтобы использовать их, нужно импортировать пакет:

import "strings"

Приведение к нижнему и верхнему регистру

strings.ToLower("HeLLo") // "hello"
strings.ToUpper("HeLLo") // "HELLO"

Проверка начала и конца строки

strings.HasPrefix("golang", "go")       // true
strings.HasSuffix("version.go", ".go")  // true

Поиск подстроки

strings.Contains("hello world", "world") // true
strings.Index("hello world", "lo")       // 3
strings.Index("hello world", "go")       // -1

Замена подстроки

strings.Replace("foo bar foo", "foo", "baz", 1)  // "baz bar foo"
strings.Replace("foo bar foo", "foo", "baz", -1) // "baz bar baz"

Четвёртый аргумент — число замен. -1 означает заменить все вхождения.

Повторение строки

strings.Repeat("na", 3) // "nananana"

Функция Repeat возвращает новую строку, повторяя исходную указанное число раз. Если указать 0 — вернётся пустая строка.

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

strings.TrimSpace("  hello\n") // "hello"

Удаляются пробелы, табуляция, переносы строк.

Срезы строк (slicing)

В Go можно получать части строки, указывая диапазон индексов в квадратных скобках. Индексы задаются по позиции байтов, начиная с 0.

text := "golang"

// символы с позиции 0 до 2, не включая 2
fmt.Println(text[0:2]) // => "go"

// от начала до позиции 4
fmt.Println(text[:4])  // => "gola"

// от позиции 3 до конца строки
fmt.Println(text[3:])  // => "ang"

// вся строка
fmt.Println(text[:])   // => "golang"

Задание

Реализуйте функцию GetHiddenCard(), которая принимает на вход номер кредитной карты в виде строки и возвращает её скрытую версию.

Скрытая версия состоит из N звёздочек и последних четырёх символов исходной строки. Количество звёздочек задаётся вторым параметром.

Примеры

GetHiddenCard("1234567812345678", 2) // "**5678"
GetHiddenCard("1234567812345678", 3) // "***5678"
GetHiddenCard("1234567812345678", 4) // "****5678"
GetHiddenCard("2034399002121100", 1) // "*1100"

Полезное

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются