Golang 如何截取字节切片的左侧
在Go语言中,切片比数组更强大、更灵活、更方便,并且是一种轻量级数据结构。切片是一种变长序列,它存储相似类型的元素,您不被允许在同一个切片中存储不同类型的元素。
在Go字节切片中,您可以使用 TrimLeft() 函数从给定的切片中删除所有的起始UTF-8编码代码点。这个函数通过从给定字符串中指定的所有领先UTF-8编码代码点切片掉原始切片的子切片。如果给定的字节切片不包含其左侧的指定字符串,则此函数将返回没有任何更改的原始切片。它在bytes包中定义,因此您必须在程序中导入bytes包才能访问TrimLeft函数。
语法:
func TrimLeft(ori_slice[]byte, cut_string string) []byte
这里,ori_slice是原始字节切片,cut_string表示您要在给定的切片中截取的字符串。让我们用以下示例来讨论这个概念:
示例1:
//Go程序来说明在字节切片中左trim的概念
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', '%'}
//截取指定的前导未加密数据点
//使用TrimLeft函数
res1 := bytes.TrimLeft(slice_1, "!#")
res2 := bytes.TrimLeft(slice_2, "*")
res3 := bytes.TrimLeft(slice_3, "@")
//显示结果
fmt.Println("截取后的结果为:")
fmt.Printf("\nSlice 1: %s", res1)
fmt.Printf("\nSlice 2: %s", res2)
fmt.Printf("\nSlice 3: %s", res3)
}
输出:
截取前的结果:
Slice 1: !!GeeksforGeeks##
Slice 2: **Apple^^
Slice 3: %geeks%
截取后的结果:
Slice 1: GeeksforGeeks##
Slice 2: Apple^^
Slice 3: %geeks%
示例2:
//Go程序来说明在字节切片中左trim的概念
package main
import (
"bytes"
"fmt"
)
func main() {
//创建并截取字节切片
//使用TrimLeft函数
res1 := bytes.TrimLeft([]byte("****Welcome to GeeksforGeeks****"), "*")
res2 := bytes.TrimLeft([]byte("!!!!Learning how to trim a slice of bytes@@@@"), "!@")
res3 := bytes.TrimLeft([]byte("^^Geek&&"), "$")
//显示结果
fmt.Printf("\nFinal Slice:\nSlice 1: Welcome to GeeksforGeeks****
Slice 2: Learning how to trim a slice of bytes@@@@
Slice 3: ^^Geek&&