String 如何在Golang中查找字符索引?

String 如何在Golang中查找字符索引?,string,go,character,String,Go,Character,我试图在Go中查找“@”字符串,但找不到方法。我知道如何索引像“HELLO[1]”这样的字符,它将输出“E”。然而,我试图找到找到的字符的索引号 在Python中,我将按以下方式执行: x = "chars@arefun" split = x.find("@") chars = x[:split] arefun = x[split+1:] >>>print split 5 >>>print chars chars >>>print aref

我试图在Go中查找“@”字符串,但找不到方法。我知道如何索引像“HELLO[1]”这样的字符,它将输出“E”。然而,我试图找到找到的字符的索引号

在Python中,我将按以下方式执行:

x = "chars@arefun"
split = x.find("@")
chars = x[:split]
arefun = x[split+1:]

>>>print split
5
>>>print chars
chars
>>>print arefun
arefun
所以chars会返回“chars”,arefun会在使用“@”delimeter时返回“arefun”。几个小时来,我一直在寻找解决方案,但似乎在Golang找不到合适的方法。

您可以使用package
strings

游乐场:


如果要搜索非ASCII字符(英语以外的语言),则需要使用

搜索以查找要搜索的语言,如果不确定,请使用
language.Und

package main

import "fmt"
import "strings"

func main() {
    x := "chars@arefun"

    i := strings.Index(x, "@")
    fmt.Println("Index: ", i)
    if i > -1 {
        chars := x[:i]
        arefun := x[i+1:]
        fmt.Println(chars)
        fmt.Println(arefun)
    } else {
        fmt.Println("Index not found")
        fmt.Println(x)
    }
}
func SubstringIndex(str string, substr string) (int, bool) {
    m := search.New(language.English, search.IgnoreCase)
    start, _ := m.IndexString(str, substr)
    if start == -1 {
        return start, false
    }
    return start, true
}

index, found := SubstringIndex('Aarhus', 'Å');
if found {
    fmt.Println("match starts at", index);
}