📅  最后修改于: 2023-12-03 15:26:49.669000             🧑  作者: Mango
在Golang中,我们可以使用多种方式来检查一个字符是否存在于一个字符串中。下面是这些方法的介绍和示例代码。
strings包是Golang标准库中提供的一个包,其中包含了很多操作字符串的函数。我们可以使用其中的Contains函数来判断一个字符串是否包含某个字符。
import "strings"
// 判断字符是否在字符串中存在
func isInString(s string, c string) bool {
return strings.Contains(s, c)
}
package main
import (
"fmt"
"strings"
)
func isInString(s string, c string) bool {
return strings.Contains(s, c)
}
func main() {
s := "hello world"
c1 := "l"
c2 := "x"
fmt.Printf("'%s' contains '%s': %v\n", s, c1, isInString(s, c1))
fmt.Printf("'%s' contains '%s': %v\n", s, c2, isInString(s, c2))
}
输出:
'hello world' contains 'l': true
'hello world' contains 'x': false
另一个strings包中的函数是Index函数,它用于返回一个字符在字符串中出现的位置。如果没有找到该字符,则返回-1。我们可以使用Index函数来判断一个字符是否在字符串中存在。
import "strings"
// 判断字符是否在字符串中存在
func isInString(s string, c string) bool {
return strings.Index(s, c) >= 0
}
package main
import (
"fmt"
"strings"
)
func isInString(s string, c string) bool {
return strings.Index(s, c) >= 0
}
func main() {
s := "hello world"
c1 := "l"
c2 := "x"
fmt.Printf("'%s' contains '%s': %v\n", s, c1, isInString(s, c1))
fmt.Printf("'%s' contains '%s': %v\n", s, c2, isInString(s, c2))
}
输出:
'hello world' contains 'l': true
'hello world' contains 'x': false
strings包中的另一个函数是ContainsAny函数。该函数用于判断字符串中是否包含任何一个字符。
import "strings"
// 判断字符是否在字符串中存在
func isInString(s string, c string) bool {
return strings.ContainsAny(s, c)
}
package main
import (
"fmt"
"strings"
)
func isInString(s string, c string) bool {
return strings.ContainsAny(s, c)
}
func main() {
s := "hello world"
c1 := "lo"
c2 := "yx"
fmt.Printf("'%s' contains any of '%s': %v\n", s, c1, isInString(s, c1))
fmt.Printf("'%s' contains any of '%s': %v\n", s, c2, isInString(s, c2))
}
输出:
'hello world' contains any of 'lo': true
'hello world' contains any of 'yx': false
bytes包是另一个用于操作字符串的Golang标准库。其中有一个函数是Contains函数,可以用来判断一个字符是否在一个字节切片中存在。需要注意的是,Contains函数只能处理字节切片,不能处理字符串。
import "bytes"
// 判断字符是否在字符串中存在
func isInByteSlice(b []byte, c byte) bool {
return bytes.Contains([]byte{b}, []byte{c})
}
package main
import (
"bytes"
"fmt"
)
func isInByteSlice(b []byte, c byte) bool {
return bytes.Contains([]byte{b}, []byte{c})
}
func main() {
s := []byte{104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100}
c1 := byte(108)
c2 := byte(120)
fmt.Printf("'%s' contains '%c': %v\n", string(s), c1, isInByteSlice(s, c1))
fmt.Printf("'%s' contains '%c': %v\n", string(s), c2, isInByteSlice(s, c2))
}
输出:
'hello world' contains 'l': true
'hello world' contains 'x': false
以上就是Golang中判断字符是否在字符串中存在的几种方法,希望对你有所帮助。