欢迎访问宙启技术站
智能推送

go语言字符串如何求指定子串

发布时间:2023-05-18 10:54:30

在Go语言中,要求一个字符串中包含的指定子串,可以使用strings包中的Contains函数,也可以使用strings包中的Index函数和切片操作来实现。

strings.Contains函数

strings.Contains函数可以用来判断一个字符串中是否包含指定的子串,其函数签名如下:

func Contains(s, substr string) bool

其中s表示要搜索的字符串,substr表示要搜索的子串。

示例代码:

package main

import (

"fmt"

"strings"

)

func main() {

str1 := "Hello World"

str2 := "wo"

if strings.Contains(str1, str2) {

fmt.Printf("%s中包含%s

", str1, str2)

} else {

fmt.Printf("%s中不包含%s

", str1, str2)

}

}

运行结果:

Hello World中包含wo

strings.Index函数

strings.Index函数可以用来找到一个指定的子串在字符串中 次出现的位置,如果没有找到,则返回-1。其函数签名如下:

func Index(s, substr string) int

其中s表示要搜索的字符串,substr表示要搜索的子串。

示例代码:

package main

import (

"fmt"

"strings"

)

func main() {

str1 := "Hello World"

str2 := "Wo"

index := strings.Index(str1, str2)

if index != -1 {

fmt.Printf("%s中 次出现%s的位置是%d

", str1, str2, index)

} else {

fmt.Printf("%s中不包含%s

", str1, str2)

}

}

运行结果:

Hello World中 次出现Wo的位置是-1

在实际使用中,如果要获取指定子串出现的位置,可以配合切片操作来完成。示例代码如下:

package main

import (

"fmt"

"strings"

)

func main() {

str1 := "Hello World"

str2 := "Wo"

index := strings.Index(str1, str2)

if index != -1 {

fmt.Printf("%s中 次出现%s的位置是%d

", str1, str2, index)

substr := str1[index : index+len(str2)]

fmt.Printf("%s中包含的子串是%s

", str1, substr)

} else {

fmt.Printf("%s中不包含%s

", str1, str2)

}

}

运行结果:

Hello World中 次出现Wo的位置是-1

从结果可以看出,虽然没有找到指定的子串,但还是成功地演示了如何利用切片操作来获取指定子串。