Rah*_*bhu 1 string null file-io go
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println("Hello",text)
Run Code Online (Sandbox Code Playgroud)
如何检查用户是否输入了空值以及我在何处放置代码?注意 - 我已经尝试检查长度= 0
,= " "
但是,它们似乎没有工作.
请建议另一种方法.谢谢!
bufio.Reader.ReadString()
返回一个string
也包含分隔符的东西,在本例中是换行符\n
.
如果用户不输入任何东西只是按下Enter键,返回值ReadString()
将是"\n"
,让你有比较结果"\n"
来检查空输入:
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)
}
Run Code Online (Sandbox Code Playgroud)
一个更好的选择是使用strings.TrimSpace()
它去除前导和尾随空白字符(包括换行符;如果有人输入2个空格并按下它,它不是一个有意义的名称Enter,此解决方案也会过滤掉它).""
如果您strings.TrimSpace()
之前调用过,则可以与空字符串进行比较:
text = strings.TrimSpace(text)
if text == "" {
fmt.Println("No input!")
} else {
fmt.Println("Hello", text)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
305 次 |
最近记录: |