使用Go

时间:2016-11-16 21:05:57

标签: go split

我是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() {

    }
}

我不知道从那里去哪里。我不知道要比较我要搜索的单词。任何帮助表示赞赏

2 个答案:

答案 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()
}

https://play.golang.org/p/gfl1jjM9Bd

答案 1 :(得分:0)

最简单的方法是使用O(1),其中键是单词,值是该单词的计数。

您必须在第一次出现时将每个单词添加到地图中,并在每次出现后增加计数。