reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println("Hello",text)
如何检查用户是否输入了空值以及我在何处放置代码?注意 - 我们已经尝试检查= 0
和= " "
的长度,但它们似乎无法正常工作。
请建议另一种方法。谢谢!
答案 0 :(得分:6)
bufio.Reader.ReadString()
会返回string
,其中包含分隔符,在这种情况下为换行符\n
。
如果用户没有输入任何内容只需按 Enter 键,ReadString()
的返回值将为"\n"
,因此您必须将结果与{{ 1}}检查空输入:
"\n"
更好的替代方法是使用strings.TrimSpace()
删除前导和尾随空格字符(包含换行符;如果有人输入2个空格并按 Enter ,这个解决方案也过滤掉了)。如果您事先调用reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, err := reader.ReadString('\n')
if err != nil {
panic(err) // Don't forget to check and handle returned errors!
}
if text == "\n" {
fmt.Println("No input!")
} else {
fmt.Println("Hello", text)
}
:
""
进行比较
strings.TrimSpace()