| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- package main
- import (
- "fmt"
- "strings"
- )
- func main() {
- // ExampleString()
- // ExampleEqualString()
- stringFunctions()
- }
- func ExampleString() {
- // Создадим строковый литерал s, значение которого "Это строка".
- // Строка состоит из 10 символов, но ее длина в байтах будет 19,
- // так как кириллические символы занимают 2 байта, а пробел - 1 байт.
- var s string = "Это строка"
- fmt.Printf("Длина строки: %d байт\n", len(s))
- // Получи подстоку строки
- fmt.Printf("Напечатаем только второе слово в кавычках: \"%v\"\n", s[7:])
- // Попробуем изменить строку (возникает ошибка компиляции, так как строки
- // неизменяемы):
- // s[3] = 12
- // Ошибка компиляции: cannot assign to s[3], потому что строки -
- // неизменяемые последовательности.
- // "Изменим строку", создав новую строку
- s = s + " Новая строка"
- fmt.Printf("%v\n", s)
- // Проитерируемся по строке
- for _, b := range s {
- fmt.Printf("%v", b)
- }
- fmt.Printf("\n")
- }
- func ExampleEqualString() {
- // Сравнение строк на равенство
- fmt.Printf("Сравнение на равенство строк \"строка1\" и \"строка2\": %v\n", "строка1" == "строка2")
- // Сравнение строк на неравенство
- fmt.Printf("Сравнение на неравенство строк \"строка1\" и \"строка2\": %v\n", "строка1" != "строка2")
- // Сравнение строк по алфавиту
- fmt.Printf("\"Строка1\" > \"Строка2\": %v\n", "Строка1" > "Строка2")
- // Output:
- // Сравнение на равенство строк "строка1" и "строка2": false
- // Сравнение на неравенство строк "строка1" и "строка2": true
- // "Строка1" > "Строка2": false
- }
- func stringFunctions() {
- fmt.Println(
- // Содержится ли подстрока в строке
- strings.Contains("test", "es"),
- // Количество подстрок в строке
- strings.Count("test", "t"),
- // Начинается ли строка с префикса
- strings.HasPrefix("test", "te"),
- // Заканчивается ли строка суффиксом
- strings.HasSuffix("test", "te"),
- // Возвращает начальный индекс подстроки в строке, а при отсутствии
- // вхождения возращает -1
- strings.Index("test", "e"),
- // объединяет массив строк через символ
- strings.Join([]string{"hello", "world"}, "-"),
- // результат: "hello-world"
- // Повторяет строку n раз подряд
- strings.Repeat("a", 5),
- // результат: "aaaaa"
- // Функция Replace заменяет любое вхождение old в вашей строке на new
- // Если значение n равно -1, то будут заменены все вхождения.
- // Общий вид: func Replace(s, old, new string, n int) string
- // Пример:
- strings.Replace("blanotblanot", "not", "***", -1),
- // результат: "bla***bla***"
- // Разбивает строку согласно разделителю
- strings.Split("a-b-c-d-e", "-"),
- // результат: []string{"a","b","c","d","e"}
- // Возвращает строку c нижним регистром
- strings.ToLower("TEST"),
- // результат: "test"
- // Возвращает строку c верхним регистром
- strings.ToUpper("test"),
- // результат: "TEST"
- // Возвращает строку с вырезанным набором
- strings.Trim("tetstet", "te"),
- // результат: s
- )
- }
|