РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
214 of 1593 menu

Функция utf8.RuneCountInString

Функция utf8.RuneCountInString подсчитывает количество рун (Unicode code points) в строке UTF-8. В отличие от встроенной функции len, которая возвращает количество байт, utf8.RuneCountInString корректно учитывает многобайтовые символы, такие как эмодзи или иероглифы. Функция принимает один параметр — строку для подсчета, и возвращает целое число — количество рун в строке.

Синтаксис

utf8.RuneCountInString(str)

Пример ⁅n="sect"⁆

Давайте подсчитаем количество рун в строке "abcde":

package main import ( "fmt" "unicode/utf8" ) func main() { res := utf8.RuneCountInString("abcde") fmt.Println(res) }

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

5

Пример ⁅n="sect"⁆

Давайте подсчитаем количество рун в строке с многобайтовыми символами "Привет":

package main import ( "fmt" "unicode/utf8" ) func main() { res := utf8.RuneCountInString("Привет") fmt.Println(res) }

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

6

Пример ⁅n="sect"⁆

Давайте сравним результат utf8.RuneCountInString с встроенной функцией len для строки с эмодзи "Hello 😊":

package main import ( "fmt" "unicode/utf8" ) func main() { str := "Hello 😊" bytes := len(str) runes := utf8.RuneCountInString(str) fmt.Printf("bytes: %d, runes: %d", bytes, runes) }

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

"bytes: 9, runes: 7"

Пример ⁅n="sect"⁆

Давайте подсчитаем количество рун в пустой строке:

package main import ( "fmt" "unicode/utf8" ) func main() { res := utf8.RuneCountInString("") fmt.Println(res) }

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

0

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

  • функцию utf8.RuneCount,
    которая подсчитывает количество рун в срезе байт
  • функцию utf8.DecodeRuneInString,
    которая декодирует первую руну из строки
  • функцию utf8.ValidString,
    которая проверяет, является ли строка валидным UTF-8
  • функцию utf8.RuneLen,
    которая возвращает длину руны в байтах
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить