Golang 如何找到指定字符串的最后一个索引值

在Go语言中,字符串与其他语言(如Java、C ++、Python等)不同。它是一个可变宽度字符序列,其中每个字符都用一个或多个字节使用UTF-8编码表示。

在Go字符串中,可以使用以下函数从原始字符串中查找指定字符串的最后一个索引值。这些函数在“strings”包下定义,因此您必须在程序中导入“strings”包以访问这些函数:

1. LastIndex: 此函数用于查找最后一个实例的给定字符串的索引值从原始字符串中。如果给定字符串在原始字符串中不可用,则此方法将返回-1。

语法:

func LastIndex(str, sbstr string) int

这里,str是原始字符串,sbstr是我们想要找到最后一个索引值的字符串。

示例:

// Go程序说明如何找到给定字符串的最后一个索引值
package main
  
import (
    "fmt"
    "strings"
)
  
// 主要功能
func main() {
  
    // 创建并初始化字符串
    str1:“欢迎来到GeeksforGeeks在线门户网站”
    str2:“我的狗名字是美元”
    str3:“我喜欢玩Ludo”
  
    // 显示字符串
    fmt.Println(“字符串1:”,str1)
    fmt.Println(“字符串2:”,str2)
    fmt.Println(“字符串3:”,str3)
  
    // 查找给定字符串的最后一个索引值
    // 使用LastIndex()函数
    res1:= strings.LastIndex(str1,“e”)
    res2:= strings.LastIndex(str2,“do”)
    res3:= strings.LastIndex(str3,“jk”)
    res4:= strings.LastIndex(“GeeksforGeeks,geeks”,“ks”)
  
    // 显示结果
    fmt.Println(“\ n索引值:“)
    fmt.Println(“结果1:”,res1)
    fmt.Println(“结果2:”,res2)
    fmt.Println(“结果3:”,res3)
    fmt.Println(“结果4:”,res4)
  
}  

输出:

字符串1:欢迎来到GeeksforGeeks在线门户网站
字符串2:我的狗名字是美元
字符串3:我喜欢玩Ludo

索引值:
结果1:42
结果2:3
结果3:-1
结果4:18

2. LastIndexAny: 此方法返回chars中任何Unicode代码点的最后一个实例在原始字符串中的索引。如果不在原始字符串中提供来自chars的Unicode代码点,则此方法将返回-1。

语法:

func LastIndexAny(str, charstr string) int

这里,str是原始字符串,charstr是存在于chars中的Unicode代码点,我们想要找到最后一个索引值。

示例:

// Go程序演示如何找到给定字符串的最后一个索引值
package main
  
import (
    "fmt"
    "strings"
)
  
// 主函数
func main() {
  
    // 创建和初始化字符串
    str1 := "欢迎来到GeeksforGeeks在线门户"
    str2 := "我的狗叫Dollar"
    str3 := "我喜欢玩Ludo"
  
    // 输出字符串
    fmt.Println("字符串1:", str1)
    fmt.Println("字符串2:", str2)
    fmt.Println("字符串3:", str3)
  
    // 查找给定字符串的最后一个索引值
    // 使用LastIndexAny()函数
    res1 := strings.LastIndexAny(str1, "mewdv")
    res2 := strings.LastIndexAny(str2, "ll")
    res3 := strings.LastIndexAny(str3, "qzmj")
    res4 := strings.LastIndexAny("GeeksforGeeks,geeks", "ee")
  
    // 输出结果
    fmt.Println("\n索引值:")
    fmt.Println("结果1:", res1)
    fmt.Println("结果2:", res2)
    fmt.Println("结果3:", res3)
    fmt.Println("结果4:", res4)
  
} 

输出:

字符串1: 欢迎来到GeeksforGeeks在线门户
字符串2: 我的狗叫Dollar
字符串3: 我喜欢玩Ludo

索引值:
结果1: 42
结果2: 18
结果3: -1
结果4: 17

3. LastIndexByte: 该函数返回原始字符串中给定字节的最后一个实例的索引。如果原始字符串中没有给定的字节,则此方法将返回-1。

语法:

func LastIndexByte(str string, b byte) int

其中,str为原始字符串,b为要查找最后一个索引值的字节。

示例:

// Go程序演示如何找到给定字节的最后一个索引值
package main
  
import (
    "fmt"
    "strings"
)
  
// 主函数
func main() {
  
    // 创建和初始化字符串
    str1 := "欢迎来到GeeksforGeeks在线门户"
    str2 := "我的狗叫Dollar"
    str3 := "我喜欢玩Ludo"
  
    // 输出字符串
    fmt.Println("字符串1:", str1)
    fmt.Println("字符串2:", str2)
    fmt.Println("字符串3:", str3)
  
    // 查找给定字节的最后一个索引值
    // 使用LastIndexByte()函数
    res1 := strings.LastIndexByte(str1, 'e')
    res2 := strings.LastIndexByte(str2, 'a')
    res3 := strings.LastIndexByte(str3, 'q')
    res4 := strings.LastIndexByte("GeeksforGeeks,geeks", 's')
  
    // 输出结果
    fmt.Println("\n索引值:")
    fmt.Println("结果1:", res1)
    fmt.Println("结果2:", res2)
    fmt.Println("结果3:", res3)
    fmt.Println("结果4:", res4)
  
} 

输出:

字符串1: 欢迎来到GeeksforGeeks在线门户
字符串2: 我的狗叫Dollar
字符串3: 我喜欢玩Ludo

索引值:
结果1: 42
结果2: 19
结果3: -1
结果4: 19