2 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果我正確閱讀了您的問(wèn)題,您想從文件中讀取并確定在命令行中輸入的字符串是否在該文件中......而且我認(rèn)為您看到的問(wèn)題與字符串分隔符有關(guān),reader.ReadString('\n')位,而不是string.Contains()。
在我看來(lái),制作你想要的東西會(huì)更容易一些fmt.Scanln;它會(huì)簡(jiǎn)化事情并返回一個(gè)我很確定是你想要的結(jié)果。試試你的代碼的這個(gè)變體:
package main
import (
"fmt"
"io/ioutil"
"strings"
)
func main() {
var text string
fmt.Print("Enter text: ")
// get the sub string to search from the user
fmt.Scanln(&text)
// read the whole file at once
b, err := ioutil.ReadFile("input.txt")
if err != nil {
panic(err)
}
s := string(b)
// //check whether s contains substring text
fmt.Println(strings.Contains(s, text))
}

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
我只是添加一個(gè)標(biāo)志來(lái)使用命令行參數(shù)。如果什么都沒(méi)通過(guò),它會(huì)提示你:)。
package main
import (
"flag"
"fmt"
"io/ioutil"
"strings"
)
//Usage go run filename -text=dataYouAreLookingfor
//if looking for Nissan in file the command will be
// go run filename -text=Nissan
func main() {
var text string
// use it as cmdline argument
textArg := flag.String("text", "", "Text to search for")
flag.Parse()
// if cmdline arg was not passed ask
if fmt.Sprintf("%s", *textArg) == "" {
fmt.Print("Enter text: ")
// get the sub string to search from the user
fmt.Scanln(&text)
} else {
text = fmt.Sprintf("%s", *textArg)
}
// read the whole file at once
b, err := ioutil.ReadFile("input.txt")
if err != nil {
panic(err)
}
s := string(b)
// //check whether s contains substring text
fmt.Println(strings.Contains(s, text))
}
- 2 回答
- 0 關(guān)注
- 241 瀏覽
添加回答
舉報(bào)