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

Функция bufio.ScanWords

Функция bufio.ScanWords представляет собой функцию разделения (split function) для использования с bufio.Scanner. Она определяет правило разбиения входного потока данных на отдельные слова. В качестве первого параметра функция принимает срез байт (данные), а возвращает количество байт, которое нужно считать, токен (слово) в виде среза байт и флаг, указывающий, закончились ли данные. В отличие от других функций разделения, bufio.ScanWords разбивает текст на слова, игнорируя пробелы и другие разделители.

Синтаксис

bufio.ScanWords(data []byte, atEOF bool) (advance int, token []byte, err error)

Пример

Давайте разобьем строку на отдельные слова с использованием bufio.ScanWords:

package main import ( "bufio" "fmt" "strings" ) func main() { input := "The quick brown fox jumps over the lazy dog" scanner := bufio.NewScanner(strings.NewReader(input)) scanner.Split(bufio.ScanWords) var words []string for scanner.Scan() { words = append(words, scanner.Text()) } res := words fmt.Println(res) }

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

[The quick brown fox jumps over the lazy dog]

Пример

Давайте подсчитаем количество слов в тексте, используя bufio.ScanWords:

package main import ( "bufio" "fmt" "strings" ) func main() { input := "Go is an open source programming language" scanner := bufio.NewScanner(strings.NewReader(input)) scanner.Split(bufio.ScanWords) var count int for scanner.Scan() { count++ } res := fmt.Sprintf("Word count: %d", count) fmt.Println(res) }

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

"Word count: 6"

Пример

Давайте обработаем текст с несколькими строками, используя bufio.ScanWords:

package main import ( "bufio" "fmt" "strings" ) func main() { input := "Hello world\nThis is Go\nbufio Scanner" scanner := bufio.NewScanner(strings.NewReader(input)) scanner.Split(bufio.ScanWords) var result []string for scanner.Scan() { result = append(result, scanner.Text()) } res := result fmt.Println(res) }

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

[Hello world This is Go bufio Scanner]

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

  • функцию bufio.Scanner.Split,
    которая устанавливает функцию разделения для сканера
  • функцию bufio.ScanLines,
    которая разбивает данные на строки
  • функцию bufio.ScanBytes,
    которая разбивает данные на отдельные байты
  • функцию bufio.Scanner.Text,
    которая возвращает текущий токен в виде строки
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить