登录
首页 >  Golang >  Go问答

如何在文件中提取大小写的单词?

来源:stackoverflow

时间:2024-02-19 20:00:26 438浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《如何在文件中提取大小写的单词?》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

我的任务是读取文件,然后扫描“坏词”,最后如果“坏词”则输出“true”或“false”是否包含在文件中。 我写了这个函数:

func readfile(filename string, tabooname string) {
    datafile, err := os.open(filename)
    if err != nil {
        log.fatal(err)
    }
    defer datafile.close()

    scanner := bufio.newscanner(datafile)

    for scanner.scan() {
        scanner.text()
        if strings.contains(scanner.text(), strings.tolower(tabooname)) || strings.contains(scanner.text(), strings.toupper(tabooname)) {
            fmt.println("true")
            break
        } else {
            fmt.println("false")
            break
        }
    }

    if err := scanner.err(); err != nil {
        log.fatal(err)
    }
}

但是如果“坏词”是大写的,则不起作用 例如:

Wrong answer in test #2

This word belongs to bad words

Please find below the output of your program during this failed test.
Note that the '>' character indicates the beginning of the input line.

---

forbidden_words.txt
HARSH
False

我怎样才能正确地做到这一点?

更新:我不知道为什么,但这个功能现在正在工作...... 首先,我刚刚在 main 函数中编写了整个 func,并且它正在工作,现在使用 func 它也可以工作。不知道为什么哈哈


正确答案


您可以使用稍有不同的方式使用 strings.Containsstrings.ToLower

func readFile(fileName string, tabooName string) {
    file, err := os.Open(fileName)
    if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    tabooNameLowered := strings.ToLower(tabooName)

    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        loweredLine := strings.ToLower(scanner.Text())
        if strings.Contains(loweredLine, tabooNameLowered) {
            fmt.Println("True")
            return
        }
    }
        
    fmt.Println("False")

    if err := scanner.Err(); err != nil {
        log.Fatal(err)
    }
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>