Golang 检查字符串是否以指定前缀开头
在 Golang 中,我们可以通过内置函数strings.HasPrefix 判断一个字符串是否以指定的前缀开头。该函数的语法如下:
func HasPrefix(s, prefix string) bool
其中,参数s是要判断的字符串,参数prefix是指定的前缀。当s以prefix开头时,该函数返回true,否则返回false。
下面是一个示例,演示如何使用strings.HasPrefix函数检查字符串是否以指定前缀开头:
package main
import (
"fmt"
"strings"
)
func main() {
str := "Hello, world!"
prefix1 := "Hell"
prefix2 := "hello"
if strings.HasPrefix(str, prefix1) {
fmt.Printf("'%s' starts with '%s'\n", str, prefix1)
}
if !strings.HasPrefix(str, prefix2) {
fmt.Printf("'%s' does not start with '%s'\n", str, prefix2)
}
}
代码输出:
'Hello, world!' starts with 'Hell'
'Hello, world!' does not start with 'hello'
这里,我们首先定义了一个字符串str,然后声明了两个前缀prefix1和prefix2。
我们通过if语句框架,分别判断字符串str是否以prefix1和prefix2 开头。如果是的话,按照不同的情况输出相应的提示信息。
需要注意的是,strings.HasPrefix函数是区分大小写的,即如果前缀中含有大写字母,那么字符串也必须以相同的大写字母开头。如果你想不区分大小写地检查前缀,那么可以使用strings.EqualFold函数将两个字符串全部转换为小写或大写后进行比较,示例如下:
package main
import (
"fmt"
"strings"
)
func HasPrefixIgnoreCase(s, prefix string) bool {
s = strings.ToLower(s)
prefix = strings.ToLower(prefix)
return strings.HasPrefix(s, prefix)
}
func main() {
str := "Hello, world!"
prefix1 := "Hell"
prefix2 := "hello"
if HasPrefixIgnoreCase(str, prefix1) {
fmt.Printf("'%s' starts with '%s'\n", str, prefix1)
}
if !HasPrefixIgnoreCase(str, prefix2) {
fmt.Printf("'%s' does not start with '%s'\n", str, prefix2)
}
}
代码输出:
'Hello, world!' starts with 'Hell'
'Hello, world!' does not start with 'hello'
上述代码中,我们定义了一个自定义函数HasPrefixIgnoreCase,它将要检查的字符串s和前缀prefix全部转换为小写字母后再交给strings.HasPrefix来判断。
结论
本文介绍了在 Golang 中检查字符串是否以指定前缀开头的方法,我们使用了strings.HasPrefix函数判断字符串相应的前缀。如果需要忽略大小写的话,还可以自己定义一个函数进行处理。
极客笔记