📌  相关文章
📜  检查给定的字符是否存在于 Golang 字符串中(1)

📅  最后修改于: 2023-12-03 15:26:49.669000             🧑  作者: Mango

Golang检查字符是否存在于字符串中

在Golang中,我们可以使用多种方式来检查一个字符是否存在于一个字符串中。下面是这些方法的介绍和示例代码。

strings包

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函数

另一个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函数

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包

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中判断字符是否在字符串中存在的几种方法,希望对你有所帮助。