我在使用字符串时遇到了问题,Golang中的Count()

lsmepo6l  于 2023-11-14  发布在  Go
关注(0)|答案(1)|浏览(73)

你好,我做了一个词频直方图,我收集了Map中的所有单词,但它并不重要,我使用字符串。Count(),但当我把或在计数它得到例如更糟的w 'or'se我怎么能解决这个问题

for scanner.Scan(){
  or := strings.Count(strings.ToLower(scanner.Text())string("or"))
  m.or += or
  worse := strings.Count(strings.ToLower(scanner.Text()), "worse")
  m.worse += worse
  to := strings.Count(strings.ToLower(scanner.Text()), "to")
  m.to += to
  of := strings.Count(strings.ToLower(scanner.Text()), "of")
  m.of += of
}

字符串
这是我试图找到特定单词的块
我试着找词但是当特定的词在另一个词里面时,它给出了错误的信息。

2w2cym1i

2w2cym1i1#

你需要知道你需要从文本中得到什么!ref:volker
如果你想在输入中找到特定的单词,你需要使用regex
看这个例子:

package main

import (
    "bufio"
    "fmt"
    "os"
    "regexp"
    "strings"
)

func main() {
    s := bufio.NewScanner(os.Stdin)
    words := make(map[string]int)

    toPatt := "\\bor\\b"
    reTo := regexp.MustCompile(toPatt)
    // add more

    fmt.Print("Enter something:")
    for s.Scan() {
        txt := strings.ToLower(s.Text())
        countTo := len(reTo.FindAllStringIndex(txt, -1))
        words["or"] += countTo
        // add more

        fmt.Println(words)
        fmt.Print("Enter something:")
    }
}

字符串
这个例子只计算单词“或”!
例如:orororor wore or计数为1。

相关问题