Golang 如何在字符串中查找指定的符文
在Go中,字符串是Unicode字符序列。字符串中的每个字符都由一个Unicode码点表示,该码点是Unicode标准中为每个字符分配的唯一整数值。在Go中,符文只是int32类型的别名,用于表示Unicode码点。在本文中,我们将讨论如何在Golang字符串中检查指定的符文。
在Golang字符串中检查指定的符文相对简单。我们可以使用strings.IndexRune函数来检查给定字符串中是否存在特定的符文。
下面是strings.IndexRune函数的语法:
func IndexRune(s string, r rune) int
IndexRune函数接收两个参数:s和r。s是我们想要在其中搜索指定rune的字符串,r是我们想要查找的rune。
该函数返回给定字符串中第一个指定rune的索引。如果在字符串中找不到指定的rune,则函数返回-1。
示例
下面是一个示例代码片段,演示了strings.IndexRune函数的用法:
package main
import (
"fmt"
"strings"
)
func main() {
s := "Hello, World!"
r := 'l'
index := strings.IndexRune(s, r)
if index == -1 {
fmt.Printf("Rune '%c' not found in string '%s'\n", r, s)
} else {
fmt.Printf("Rune '%c' found at index %d in string '%s'\n", r, index, s)
}
}
输出
Rune 'l' found at index 2 in string 'Hello, World!'
在这个示例中,我们定义了一个字符串s和一个要在字符串中查找的rune。然后我们用这两个参数调用了strings.IndexRune函数,并将结果存储在index变量中。
随后,我们检查index的值是否为-1,这表示在字符串中未找到指定的rune。如果是这样,我们打印一条消息指示未找到该rune。否则,我们打印一条消息指示找到该rune的索引。
示例
这里是另一个示例 –
package main
import "fmt"
func runeExists(str string, r rune) bool {
for _, c := range str {
if c == r {
return true
}
}
return false
}
func main() {
str := "hello, world!"
r1 := 'o'
r2 := 'z'
if runeExists(str, r1) {
fmt.Printf("The rune '%c' exists in the string '%s'\n", r1, str)
} else {
fmt.Printf("The rune '%c' does not exist in the string '%s'\n", r1, str)
}
if runeExists(str, r2) {
fmt.Printf("The rune '%c' exists in the string '%s'\n", r2, str)
} else {
fmt.Printf("The rune '%c' does not exist in the string '%s'\n", r2, str)
}
}
输出
The rune 'o' exists in the string 'hello, world!'
The rune 'z' does not exist in the string 'hello, world!'
在此示例中,我们定义了一个名为runeExists()的函数,它接受一个字符串str和一个rune r作为输入。然后,该函数遍历字符串中的每个rune,并将其与我们要查找的rune进行比较。如果找到匹配项,则函数返回true,否则返回false。
在main()函数中,我们定义一个字符串str和两个rune变量r1和r2。然后,我们调用runeExists()函数来检查r1和r2是否存在于字符串str中。根据结果,我们打印一个消息,指示该rune是否存在于字符串中。
结论
使用strings.IndexRune函数在Golang字符串中检查特定rune是一项简单的任务。通过按照本文提供的语法和示例,您可以轻松地检查任何Golang字符串中的特定rune。
极客笔记