我的任務是讀取文件,然后掃描“壞詞” ,如果文件中是否包含“壞詞” ,最后輸出“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 #2This word belongs to bad wordsPlease find below the output of your program during this failed test.Note that the '>' character indicates the beginning of the input line.---forbidden_words.txtHARSHFalse我怎樣才能正確地做到這一點?更新:我不知道為什么,但是這個函數現在可以工作了……首先,我剛剛在 main 函數中編寫了整個 func,它正在工作,現在有了 func,它也可以工作了。我不知道為什么大聲笑
1 回答

30秒到達戰場
TA貢獻1828條經驗 獲得超6個贊
您可以使用and略有不同:strings.Contains
strings.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)
}
}
- 1 回答
- 0 關注
- 85 瀏覽
添加回答
舉報
0/150
提交
取消