Go语言程序:检查字符串是否包含子字符串
子字符串是指字符串中较小的字符串,Go 语言中的字符串是字符的集合。由于 Go 语言中的字符串是不可变的,因此在创建后不能修改它们。但是,连接或添加到现有字符串可以创建新的字符串。字符串类型是 Go 语言中的内置类型,可以像其他任何数据类型一样以多种方式使用。
语法
strings.Contains(str,substring string)
要确定字符串是否包含特定子字符串,可以使用 `Contains(s, substr string) bool` 函数。如果在提供的字符串中找到子字符串,则返回一个布尔值,指示其存在。
strings.Index(str, substring string)
可以使用 `Index(s, str string) int` 函数来确定给定字符串中指定子字符串的第一个实例的索引。如果子字符串不存在,则返回 -1;否则返回子字符串在字符串中的索引。
strings.Index(str, substring string)
可以使用 `Index(s, str string) int` 函数来确定给定字符串中指定子字符串的第一个实例的索引。如果子字符串不存在,则返回 -1;否则返回子字符串在字符串中的索引。
算法
步骤 1 − 创建一个 `main` 包并声明 `fmt`(格式包)和 `strings` 包
步骤 2 − 创建一个 `main` 函数,并在该函数中创建一个字符串 `mystr`
步骤 3 − 使用字符串函数检查字符串是否包含子字符串
步骤 4 − 打印输出
示例 1
在这个示例中,我们将看到如何使用内置函数 `strings.Contains()` 检查字符串是否包含子字符串。输出将是一个布尔值,打印在控制台上。让我们通过代码和算法来轻松理解这个概念。
package main import ( "fmt" "strings" ) func main() { mystr := "Hello,alexa!" //create string fmt.Println("The string created here is:", mystr) substring := "alexa" //hold substring fmt.Println("The substring from the string is:", substring) fmt.Println("Whether the substring is present in string or not?") fmt.Println(strings.Contains(mystr, substring)) //use built-in function to check if substring is present in string }
输出
The string created here is: Hello,alexa! The substring from the string is: alexa Whether the substring is present in string or not? true
示例 2
在这个示例中,我们将看到如何使用 `strings.Index()` 函数检查字符串是否包含子字符串。
package main import ( "fmt" "strings" ) func main() { mystr := "Hello, alexa!" //create string fmt.Println("The string created here is:", mystr) substring := "alexa" //substring fmt.Println("The substring from the string is:", substring) fmt.Println("Whether the string contains the substring or not?") if strings.Index(mystr, substring) >= 0 { //check if condition is true print the statement fmt.Println("The string contains the substring.") } else { fmt.Println("The string does not contain the substring.") } }
输出
The string created here is: Hello, alexa! The substring from the string is: alexa Whether the string contains the substring or not? The string contains the substring.
示例 3
在这个示例中,我们将看到如何使用 `strings.Index()` 函数中的 for 循环来查找字符串是否包含子字符串。
package main import ( "fmt" "strings" ) func main() { mystr := "Hello, alexa!" //create string fmt.Println("The string created here is:", mystr) substring := "alexa" //hold substring fmt.Println("The substring present here is:", substring) fmt.Println("Whether the substring is present in string or not?") found := false for i := 0; i < len(mystr); i++ { if strings.Index(mystr[i:], substring) == 0 { //check if substring is present in string or not found = true break } } if found { fmt.Println("The string has substring in it.") } else { fmt.Println("The string does not have substring in it.") } }
输出
The string created here is: Hello, alexa! The substring present here is: alexa Whether the substring is present in string or not? The string has substring in it.
结论
我们通过三个示例执行了检查字符串是否包含子字符串的程序。在第一个示例中,我们使用了 `strings.Contains()` 函数;在第二个示例中,我们使用了 `strings.Index()` 函数;在第三个示例中,我们使用了前一个内置函数的 for 循环。