Метод bufio.Scanner.Text
Метод bufio.Scanner.Text возвращает текущий токен
(например, слово или строку) в виде строки string.
Метод вызывается после успешного выполнения метода
Scan, который считывает данные из входного потока
и возвращает true, если данные были успешно
прочитаны. Если сканирование завершилось ошибкой или
достигнут конец данных, метод Text возвращает
пустую строку.
Синтаксис
scanner.Text()
Пример
Давайте создадим сканер для строки и почитаем из нее слова:
package main
import (
"bufio"
"fmt"
"strings"
)
func main() {
data := "abcde 12345"
scanner := bufio.NewScanner(strings.NewReader(data))
scanner.Split(bufio.ScanWords)
for scanner.Scan() {
token := scanner.Text()
fmt.Println(token)
}
if err := scanner.Err(); err != nil {
fmt.Println("Error:", err)
}
}
Результат выполнения кода:
"abcde"
"12345"
Пример
Давайте прочитаем строку по словам, используя стандартную функцию разбиения:
package main
import (
"bufio"
"fmt"
"strings"
)
func main() {
data := "a b c d e"
scanner := bufio.NewScanner(strings.NewReader(data))
for scanner.Scan() {
token := scanner.Text()
fmt.Printf("Token: %s\n", token)
}
}
Результат выполнения кода:
"Token: a"
"Token: b"
"Token: c"
"Token: d"
"Token: e"
Пример
Давайте прочитаем строку по словам и подсчитаем их количество:
package main
import (
"bufio"
"fmt"
"strings"
)
func main() {
data := "hello world from go"
scanner := bufio.NewScanner(strings.NewReader(data))
scanner.Split(bufio.ScanWords)
count := 0
for scanner.Scan() {
count++
}
fmt.Printf("Word count: %d", count)
}
Результат выполнения кода:
"Word count: 4"
Смотрите также
-
метод
bufio.Scanner.Scan,
который считывает следующий токен -
метод
bufio.Scanner.Bytes,
который возвращает текущий токен как срез байт -
метод
bufio.Scanner.Split,
который устанавливает функцию разбиения данных -
метод
bufio.Scanner.Err,
который возвращает ошибку сканирования