Golang 如何截取字节切片的左侧

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&&

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程