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 ) }