如何从文件中读取大写和小写的单词?走

我的任务是读取文件,然后扫描“坏词” ,如果文件中是否包含“坏词” ,最后输出“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,它也可以工作了。我不知道为什么大声笑


子衿沉夜
浏览 64回答 1
1回答

30秒到达战场

您可以使用and略有不同:strings.Containsstrings.ToLowerfunc 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)    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go