为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取数组中字符串的索引?

如何获取数组中字符串的索引?

Go
森栏 2022-10-31 15:37:59
这是我的示例代码:slice_of_string := strings.Split("root/alpha/belta", "/") res1 := bytes.IndexAny(slice_of_string , "alpha")我收到了这个错误./prog.go:16:24: cannot use a (type []string) as type []byte in argument to bytes.IndexAny这里的逻辑是当我输入路径和文件夹名(或文件名)时,我想知道该路径中文件夹名(或文件名)的级别。我这样做:将路径拆分为数组获取路径中文件夹名(或文件名)的索引如果索引为 0,则级别为 1,依此类推。
查看完整描述

3 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

您可能需要遍历切片并找到您要查找的元素。


func main() {

    path := "root/alpha/belta"

    key := "alpha"

    index := getIndexInPath(path, key)

    fmt.Println(index)

}


func getIndexInPath(path string, key string) int {

    parts := strings.Split(path, "/")

    if len(parts) > 0 {

        for i := len(parts) - 1; i >= 0; i-- {

            if parts[i] == key {

                return i

            }

        }

    }

    return -1

}

请注意,循环是向后的,以解决 Burak Serdar 指出的逻辑问题,它可能会在其他路径上失败/a/a/a/a。


查看完整回答
反对 回复 2022-10-31
?
jeck猫

TA贡献1909条经验 获得超7个赞

如果strings.IndexAnybytes.IndexAny[]string.



查看完整回答
反对 回复 2022-10-31
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

标准库中没有可用于在字符串切片中搜索的内置函数,但如果对字符串切片进行排序,则可以使用它sort.SearchStrings进行搜索。但是在未排序的字符串切片的情况下,您必须使用 for 循环来实现它。



查看完整回答
反对 回复 2022-10-31
  • 3 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号