【问题标题】:How can I check the first character of a scanned string even if it is empty?如何检查扫描字符串的第一个字符,即使它是空的?
【发布时间】:2022-01-21 17:45:35
【问题描述】:

我希望用户能够输入并检查第一个字符是否为a,但如果他们将字符串留空,则会导致以下错误:

panic: runtime error: index out of range [0] with length 0

我的代码如下:

package main
import "fmt"
func main() {
        var a string;
        fmt.Scanln(&a);
        if string(a[0]) == "a" {
                fmt.Println("if true");
        } 
}

【问题讨论】:

  • 先检查字符串的长度。
  • startsWithA := strings.HasPrefix(a, “a”)

标签: string go user-input


【解决方案1】:

一种方法,只检查第一个字符是否为"a"

var a string;
fmt.Scanln(&a);
if len(a) > 0 && string(a[0]) == "a" {
    fmt.Println("if true")
}

另一个,将使用前导空格,例如当Scanln 的输入是" a" 时:

var a string;
fmt.Scanln(&a);
if strings.HasPrefix(a, "a") {
    fmt.Println("if true")
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多