Функция strings.ToTitle

Функция strings.ToTitle преобразует все символы строки в заглавные буквы, следуя правилам Unicode. В отличие от strings.ToUpper, эта функция предназначена для преобразования текста в формат, пригодный для заголовков (title case), где некоторые символы могут иметь специальные правила преобразования. В первый параметр мы передаем строку, которую необходимо преобразовать. Функция возвращает новую строку с преобразованными символами. Исходная строка при этом не изменяется.

Синтаксис

gostrings.ToTitle(str)

Пример

Давайте преобразуем строку 'hello world' в заглавные буквы:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.ToTitle("hello world")
  fmt.Println(res)
}

Результат выполнения кода:

go"HELLO WORLD"

Пример

Давайте сравним поведение strings.ToTitle и strings.ToUpper на строке с символом 'ß' (немецкая буква эсцет). В немецком языке символ 'ß' преобразуется в 'SS' при использовании ToUpper, но ToTitle также обрабатывает его специальным образом:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  str := "straße"
  resUpper := strings.ToUpper(str)
  resTitle := strings.ToTitle(str)
  fmt.Println("ToUpper:", resUpper)
  fmt.Println("ToTitle:", resTitle)
}

Результат выполнения кода:

go"ToUpper: STRASSE"
"ToTitle: STRASSE"

Пример

Рассмотрим преобразование строки с символами из разных алфавитов. Для кириллических символов преобразование работает аналогично:

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.ToTitle("привет мир")
  fmt.Println(res)
}

Результат выполнения кода:

go"ПРИВЕТ МИР"

Пример

Функция корректно обрабатывает смешанные строки, содержащие символы в разных регистрах, а также цифры и спецсимволы (они не изменяются):

gopackage main

import (
  "fmt"
  "strings"
)

func main() {
  res := strings.ToTitle("go123!@# programming")
  fmt.Println(res)
}

Результат выполнения кода:

go"GO123!@# PROGRAMMING"

Смотрите также

  • функцию strings.ToUpper,
    которая преобразует строку в верхний регистр
  • функцию strings.ToLower,
    которая преобразует строку в нижний регистр
  • функцию unicode.ToTitle,
    которая преобразует отдельный руну в заглавную букву
  • функцию strings.EqualFold,
    которая сравнивает строки без учета регистра