我是Go的新手,我正在尝试设置一个逐字拆分Reader对象的程序,然后记录找到该单词的次数。这是我到目前为止所拥有的。
func Occurrences(word string, s io.Reader) (uint, error) {
scanner := bufio.NewScanner(strings.NewReader(s))
// Split the reader into words
var word_count int // Number of the specific word found
scanner.Split(budfio.ScanWords)
for scanner.Scan() {
}
}
我不知道从那里去哪里。我不知道要比较我要搜索的单词。任何帮助表示赞赏
答案 0 :(得分:3)
将单词字符串与扫描程序中的当前字符串标记进行比较
func Occurrences(word string, r io.Reader) (int, error) {
scanner := bufio.NewScanner(r)
wordCount := 0
scanner.Split(bufio.ScanWords)
for scanner.Scan() {
if scanner.Text() == word {
wordCount++
}
}
return wordCount, scanner.Err()
}
答案 1 :(得分:0)
最简单的方法是使用O(1)
,其中键是单词,值是该单词的计数。
您必须在第一次出现时将每个单词添加到地图中,并在每次出现后增加计数。