Golang 如何截取字节片的右侧
在Go语言中,切片比数组更强大、灵活、方便,是一种轻量级的数据结构。切片是一种可变长度的序列,它可以存储相似类型的元素,但不允许在同一个切片中存储不同类型的元素。
在Go字节切片中,你可以使用TrimRight()函数截取给定切片中所有以UTF-8编码的代码点的末尾。该函数通过切除在给定字符串中指定的所有尾随UTF-8编码的代码点来返回原始片的子片。如果给定的字节切片不包含其右侧的指定字符串,则此函数返回原始切片而不做任何更改。它在bytes包中定义,因此你必须在程序中导入bytes包才能访问TrimRight函数。
语法:
func TrimRight(ori_slice[]byte, cut_string string) []byte
在这里,ori_slice是原始的字节切片,cut_string表示你想要在给定的切片中截取的字符串。让我们通过以下示例来讨论这个概念:
示例1:
//演示如何在字节片的右侧截取
//的Go语言程序
package main
import (
"bytes"
"fmt"
)
func main() {
//创建并截取
//字节片的使用TrimRight函数
res1 := bytes.TrimRight([]byte("****Welcome to GeeksforGeeks****"), "*")
res2 := bytes.TrimRight([]byte("!!!!Learning how to trim a slice of bytes@@@@"), "!@")
res3 := bytes.TrimRight([]byte("^^Geek&&"), "$")
//显示结果
fmt.Printf("\n\nFinal Slice:\n")
fmt.Printf("\nSlice 1: %s", res1)
fmt.Printf("\nSlice 2: %s", res2)
fmt.Printf("\nSlice 3: %s", res3)
}
输出:
Final Slice:
Slice 1: ****Welcome to GeeksforGeeks
Slice 2: !!!!Learning how to trim a slice of bytes
Slice 3: ^^Geek&&
示例2:
//演示如何在字节片的右侧截取
//的Go语言程序
package main
import (
"bytes"
"fmt"
)
func main() {
//创建并初始化
//字节片,使用简写声明
slice_1 := []byte{'!', '!', 'G', 'e', 'e', 'k', 's',
'f', 'o', 'r', 'G', 'e', 'e', 'k', 's', '#', '#'}
slice_2 := []byte{'*', '*', 'A', 'p', 'p', 'l', 'e', '^', '^'}
slice_3 := []byte{'%', 'g', 'e', 'e', 'k', 's', '%'}
//显示字节片
fmt.Println("Original Slice:")
fmt.Printf("Slice 1: %s", slice_1)
fmt.Printf("\nSlice 2: %s", slice_2)
fmt.Printf("\nSlice 3: %s", slice_3)
//从给定的字节片中截取指定的尾随Unicode点
//使用TrimRight函数
res1 := bytes.TrimRight(slice_1, "!#")
res2 := bytes.TrimRight(slice_2, "^")
res3 := bytes.TrimRight(slice_3, "@")
//显示结果
fmt.Printf("\n\nNew Slice:\n")
fmt.Printf("\nSlice 1: %s", res1)
fmt.Printf("\nSlice 2: %s", res2)
fmt.Printf("\nSlice 3: %s", res3)
}
输出:
Original Slice:
Slice 1: !!GeeksforGeeks##
Slice 2: **Apple^^
Slice 3: %geeks%
New Slice:
Slice 1: !!GeeksforGeeks
Slice 2: **Apple
Slice 3: %geeks%