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 循环。

更新于:2023年2月1日

634 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告