go bytes包

代码:

package main

import (
"bytes"
"fmt"
// "icode.baidu.com/baidu/gdp/automaxprocs"
//
"icode.baidu.com/baidu/gdp/log"
)

// "icode.baidu.com/baidu/gdp/log"

// "icode.baidu.com/baidu/gdp/log"

func main() {
println("hello,world")
buff1 := make([]byte, 2)
writeInt16(buff1, uint16(15))

buff2 := make([]byte, 2)
writeInt16(buff2, uint16(13))
res := bytes.Compare(buff1, buff2)
fmt.Println(res)

buff3 := []byte("hello world hello world")
seq := []byte("hello")
res = bytes.Count(buff3, seq)
fmt.Println(res)

contains := bytes.Contains(buff3, seq)
println(contains)

res = bytes.Index(buff3, seq)
println(res)

res = bytes.LastIndex(buff3, seq)
println(res)

a := rune(‘e‘)
res = bytes.IndexRune(buff3, a)
println("indexRune:", res)

println("------------")
buff5 := []byte("abcabcabcabc")

arr := bytes.SplitN(buff5, []byte("a"), 3)
for _, v := range arr {
    for _, t := range v {
        print(t)
        print(",")
    }
    println("|")
}

println("------------")
buff6 := []byte("abc abc abc        abc")
arr = bytes.Fields(buff6)
for _, v := range arr {
    for _, t := range v {
        print(t)
        print(",")
    }
    println("|")
}

println("------------")
buff7 := []byte("abcabcabcabc")
arr = bytes.FieldsFunc(buff7, spilt)
for _, v := range arr {
    for _, t := range v {
        print(t)
        print(",")
    }
    println("|")
}

buff8 := []byte("我是中国人")
data := bytes.Runes(buff8)
for _, elem := range data {
    println(string(elem))
}

buff9 := bytes.Title(buff7)
println(string(buff9))

buff10 := bytes.Map(func(r rune) rune {
    if r == ‘c‘ {
        return ‘a‘
    }
    return r
}, buff7)
println(string(buff10))

}

func spilt(r rune) bool {
if r == ‘c‘ {
return true
}
return false
}

func writeInt16(buff []byte, data uint16) {
for i := 0; i < 2; i++ {
buff[i] = byte(data >> uint(i*8))
}
}

func printBytes(varBytes []byte) {
strByte := string(varBytes)
fmt.Println(strByte)
}

输出

hello,world
1
2
true
0
12
indexRune: 1

|
98,99,|
98,99,97,98,99,97,98,99,|

97,98,99,|
97,98,99,|
97,98,99,|
97,98,99,|

97,98,|
97,98,|
97,98,|
97,98,|





Abcabcabcabc
abaabaabaaba

原文地址:https://blog.51cto.com/7613577/2468287

时间: 2024-11-02 00:00:15

go bytes包的相关文章

Go语言学习(十)bytes包处理字节切片

bytes包提供了对字节切片进行读写操作的一系列函数 字节切片处理的函数比較多,分为基本处理函数,比較函数,后缀检查函数,索引函数,切割函数, 大写和小写处理函数和子切片处理函数等. 1.字节切片基本处理函数api 1.1Contains()函数 //Contains()函数的功能是检查字节切片b是否包括子切片subslice,假设包括返回true,否则返回false. func Contains(b,subslice []bytes) bool 1.2Count()函数 //Count()函数

GoLang之buffer与bytes包

strings包 strings包的使用举例: package main import s "strings" import "fmt" var p = fmt.Println func main() { p("Contains: ", s.Contains("test", "es")) p("Count: ", s.Count("test", "t&quo

go语言中bytes包的常用函数,Reader和Buffer的使用

bytes中常用函数的使用: package main; import ( "bytes" "fmt" "unicode" ) //bytes包中实现了大量对[]byte操作的函数和两个最主要的Reader和Buffer两个结构 func main() { str := "aBcD"; //转为小写 fmt.Println(string(bytes.ToLower([]byte(str)))); //转为大写 fmt.Prin

golang bytes 包 详解

概况: 包字节实现了操作字节切片的函数.它类似于琴弦包的设施. 函数: func Compare(a, b []byte) int func Contains(b, subslice []byte) bool func ContainsAny(b []byte, chars string) bool func ContainsRune(b []byte, r rune) bool func Count(s, sep []byte) int func Equal(a, b []byte) bool

golang bytes包解读

golang中的bytes标准库实现了对字节数组的各种操作,与strings标准库功能基本类似. 功能列表:1.字节切片 处理函数 (1).基本处理函数(2).字节切片比较函数(3).前后缀检查函数(4).字节切片位置索引函数(5).分割函数(6).大小写处理函数(7).子字节切片处理函数2.Buffer 对象3.Reader 对象 基本处理函数Contains() :返回是否包含子切片func Contains(b, subslice []byte) bool 案例:执行结果:[email p

GO中常用包笔记 bytes(四)

Package bytes 对字节数组进行操作的包.功能和strings包相似. bytes包提供的功能有: 和另一个字节数组切片的关系(逐字节比较大小,是否相等/相似,是否包含/包含次数,位置搜索,是否是前缀后缀) 2.字节数组切片和字符串的关系(字符串中是否含有字节数组所包含的rune,以及在字符串中的位置) 3.字节数组切片和rune的关系(字节数组中是否含有特定的或满足特定条件的rune,以及在字节数组中的位置) 4.字节数组切片和字节的关系(包含/位置) 5.分割分组,分组连结 6.大

Golang之bytes.buffer

bytes.buffer是一个缓冲byte类型的缓冲器存放着都是byte Buffer 是 bytes 包中的一个 type Buffer struct{-} A buffer is a variable-sized buffer of bytes with Read and Write methods. The zero value for Buffer is an empty buffer ready to use. (是一个变长的 buffer,具有 Read 和Write 方法. Buf

[golang]内存不断增长bytes.makeSlice

golang写的一个图片服务器,在批量下载压缩时候发现内存不断增长.... 幸好golang自带内存占用日志结合分析工具可以方便看到内存分布. 详细可参考: http://blog.golang.org/profiling-go-programs 可以实时统计CPU\内存信息. 这里主要说一下内存怎么搞.CPU分析的参考之前的一篇文章. //需要包含这个pprof包 import "runtime/pprof" //这里接收内存统计信息保存文件 var memprofile = fla

Go中常用包笔记 字符串strings(四)

Package strings 此包和bytes包十分类似,除了没有bytes.Buffer,func Equal(a, b []byte) bool ,func Runes(s []byte) []rune,以外,bytes包含的方法strings都含有,只不过各方法其中一个参数有[]byte变为string而已.但是有个独特的type Replacer: func NewReplacer(oldnew ...string) *Replacer //构造函数,不定参数,参数格式为old1,ne