去检查字符串切片中是否有字符串

时间:2014-06-06 10:56:22

标签: go

作为序言我来自python,在那里我将有一个列表,其中包含我的值而不是字符串切片,并执行“if x in list”。如果我做错了,请告诉我。

我需要从用户那里获取输入,如果它包含在我的切片字符串中然后中断我的循环并继续,否则再次提示用户。现在我有这个

package main

import (
    "bufio"
    "fmt"
    "os"
    "os/exec"
    "strings"
)

func main() {
    reader := bufio.NewReader(os.Stdin)
    foundfdb := false
    fdbslices := []string{"f", "d", "b", "files", "directories", "both"}

    for {
        fmt.Print("Files, Directories, or Both: ")
        fdb, _ := reader.ReadString('\n')
        fdb = strings.ToLower(fdb)
        for i := range fdbslices {
            if strings.ContainsAny(fdbslices[i], fdb) {
                foundfdb = true
            }
        }
        if foundfdb = true {
            break
        }
    }
}

似乎ContainsAny()给了我一些误报。必须有一种更简单的方法来做到这一点,还是有?

1 个答案:

答案 0 :(得分:4)

ContainsAny允许您查找特定字符串中的特定字符,我认为这不是您想要的。对于我的一个项目,我实现了一个函数来查找切片中的字符串:

func InArray(a []string, e string) bool {
    for _, x := range a {
        if x == e {
            return true
        }
    }
    return false
}
相关问题