Go中没有startwith,endswith函数?
在Go语言标准库中确实没有像Python中的 startswith
和 endswith
这样的字符串方法。不过,你可以使用Go语言的标准库中提供的一些方法来实现类似的功能。
实现 startswith
功能
在Go中,可以使用 strings.HasPrefix
函数来判断字符串是否以特定的前缀开头:
gopackage main
import (
"fmt"
"strings"
)
func main() {
str := "Hello, world!"
if strings.HasPrefix(str, "Hello") {
fmt.Println("字符串以 'Hello' 开头")
} else {
fmt.Println("字符串不以 'Hello' 开头")
}
}
实现 endswith
功能
对于判断字符串是否以特定后缀结尾,可以使用 strings.HasSuffix
函数:
gopackage main
import (
"fmt"
"strings"
)
func main() {
str := "Hello, world!"
if strings.HasSuffix(str, "world!") {
fmt.Println("字符串以 'world!' 结尾")
} else {
fmt.Println("字符串不以 'world!' 结尾")
}
}
自定义函数实现
如果需要更灵活的匹配方式,可以编写自定义函数来实现类似 startswith
和 endswith
的功能:
gopackage main
import "fmt"
func startswith(s, prefix string) bool {
return len(s) >= len(prefix) && s[:len(prefix)] == prefix
}
func endswith(s, suffix string) bool {
return len(s) >= len(suffix) && s[len(s)-len(suffix):] == suffix
}
func main() {
str := "Hello, world!"
if startswith(str, "Hello") {
fmt.Println("字符串以 'Hello' 开头")
} else {
fmt.Println("字符串不以 'Hello' 开头")
}
if endswith(str, "world!") {
fmt.Println("字符串以 'world!' 结尾")
} else {
fmt.Println("字符串不以 'world!' 结尾")
}
}
总结
虽然Go语言标准库中没有 startswith
和 endswith
直接可用的方法,但可以利用 strings.HasPrefix
和 strings.HasSuffix
函数来实现类似功能。此外,也可以编写简单的自定义函数来满足特定的需求。
关键字提取
Go语言, strings.HasPrefix, strings.HasSuffix, 自定义函数