Golang 如何截取字节片的右侧

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%

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程