如何在Golang字符串中检查指定的rune?
在Go中,字符串是Unicode字符序列。字符串中的每个字符都由Unicode代码点表示,Unicode标准为每个字符分配一个唯一的整数值。Go中的rune只是int32类型的一个别名,用于表示Unicode代码点。本文将讨论如何检查Golang字符串中的特定rune。
检查Golang字符串中的特定rune相对简单。我们可以使用strings.IndexRune函数来检查给定字符串中是否存在特定的rune。
下面是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 r,我们要在该字符串中查找。然后我们调用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。
极客教程