bytes标准库
bytes包提供了对字节切片进行读写操作的一系列函数,字节切片处理的函数比较多分为基本处理函数、比较函数、后缀检查函数、索引函数、分割函数、大小写处理函数和子切片处理函数等。
1. 常用函数
1.1 转换
| 函数 | 说明 |
|---|---|
| func ToUpper(s []byte) []byte | 将 s 中的所有字符修改为大写格式返回。 |
| func ToLower(s []byte) []byte | 将 s 中的所有字符修改为小写格式返回 |
| func ToTitle(s []byte) []byte | 将 s 中的所有字符修改为标题格式返回 |
| func ToUpperSpecial(_case unicode.SpecialCase, s []byte) []byte | 使用指定的映射表将 s 中的所有字符修改为大写格式返回 |
| func ToLowerSpecial(_case unicode.SpecialCase, s []byte) []byte | 使用指定的映射表将 s 中的所有字符修改为小写格式返回 |
| func ToTitleSpecial(_case unicode.SpecialCase, s []byte) []byte | 使用指定的映射表将 s 中的所有字符修改为标题格式返回 |
| func Title(s []byte) []byte | 将 s 中的所有单词的首字符修改为 Title 格式返回。(缺点:不能很好的处理以 Unicode 标点符号分隔的单词。) |
package main
import (
"bytes"
"fmt"
)
func main() {
var b = []byte("seafood") //强制类型转换
a := bytes.ToUpper(b)
fmt.Println(a, b)
c := b[0:4]
c[0] = 'A'
fmt.Println(c, b)
}
1.2 比较
| 函数 | 说明 |
|---|---|
| func Compare(a, b []byte) int | 比较两个 []byte,nil 参数相当于空 []byte。a < b 返回 -1;a == b 返回 0;a > b 返回 1 |
| func Equal(a, b []byte) bool | 判断 a、b 是否相等,nil 参数相当于空 []byte |
| func EqualFold(s, t []byte) bool | 判断 s、t 是否相似,忽略大写、小写、标题三种格式的区别 |
package main
import (
"bytes"
"fmt"
)
func main() {
s1 := "Φφϕ kKK"
s2 := "ϕΦφ KkK"
// 看看 s1 里面是什么
for _, c := range s1 {
fmt.Printf("%-5x", c)
}
fmt.Println()
// 看看 s2 里面是什么
for _, c := range s2 {
fmt.Printf("%-5x", c)
}
fmt.Println()
// 看看 s1 和 s2 是否相似
fmt.Println(bytes.EqualFold([]byte(s1), []byte(s2)))
}
1.3 清理
-
func Trim(s []byte, cutset string) []byte去掉 s 两边包含在 cutset 中的字符(返回 s 的切片
-
func TrimLeft(s []byte, cutset string) []byte去掉 s 左边包含在 cutset 中的字符(返回 s 的切片)
-
func TrimRight(s []byte, cutset string) []byte去掉 s 右边包含在 cutset 中的字符(返回 s 的切片)
-
func TrimFunc(s []byte, f func(r rune) bool) []byte去掉 s 两边符合 f函数====返回值是true还是false 要求的字符(返回 s 的切片)
-
func TrimLeftFunc(s []byte, f func(r rune) bool) []byte去掉 s左边符合 f函数====返回值是true还是false 要求的字符(返回 s 的切片)
-
func TrimRightFunc(s []byte, f func(r rune) bool) []byte去掉 s右边符合 f函数====返回值是true还是false 要求的字符(返回 s 的切片)
-
func TrimSpace(s []byte) []byte去掉 s 两边的空白(unicode.IsSpace)(返回 s 的切片)
-
func TrimPrefix(s, prefix []byte) []byte去掉 s 的前缀 prefix(返回 s 的切片)
-
func TrimSuffix(s, suffix []byte) []byte去掉 s 的后缀 suffix(返回 s 的切片)
package main
import (
"bytes"
"fmt"
)
func main() {
bs := [][]byte{
//[][]byte 字节切片 二维数组
[]byte("Hello World !"),
[]byte("Hello 世界!"),
[]

本文详细介绍了Go语言标准库bytes包中的各种函数,包括字节切片的转换、大小写处理、比较、清理、拆分、替换以及Buffer和Reader类型的使用,展示了如何高效地处理字节序列操作。
最低0.47元/天 解锁文章
6275

被折叠的 条评论
为什么被折叠?



