本节要讲的内容将是一个重点内容
package main
import (
"bytes"
"fmt"
)
func main() {
var a,b []byte
a = []byte{'b','a'}
b = []byte{'c'}
fmt.Println(bytes.Compare(a,b))
}
image.png
两个切片,从下标0的位置,以此进行比较,如果值相等,则进行后面的值比较,直到数据不相等,如果值a > 值b 则返回 1, a == b 返回 0,否则返回-1
package main
import (
"bytes"
"fmt"
)
func main() {
var a,b []byte
a = []byte{'b','a'}
b = []byte{'c'}
fmt.Println(bytes.Equal(a,b))
}
判断规则和上面一致
image.png
func Contains(b, subslice []byte) bool
package main
import (
"bytes"
"fmt"
)
func main() {
var a,b []byte
a = []byte{'b','a','c'}
b = []byte{'c'}
fmt.Println(bytes.Contains(a,b))
}
image.png
func ContainsAny(b []byte, chars string) bool
package main
import (
"bytes"
"fmt"
)
func main() {
var a []byte
a = []byte{'b','a','c'}
fmt.Println(bytes.ContainsAny(a,"abcde"))
}
检测规则如下
ContainsAny 检测chars的任何 UTF-8 编码的 Unicode 代码点是否在 b 中。
package main
import (
"bytes"
"fmt"
)
func main() {
var a []byte
a = []byte("我爱你")
var c rune = '我'
fmt.Println(bytes.ContainsRune(a,c))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a,b []byte
a = []byte("我我我爱你")
b = []byte("我")
fmt.Println(bytes.Count(a,b))
}
image.png
如何 b为空 怎么返回 len(a) + 1 ,即 6
如下
package main
import (
"bytes"
"fmt"
)
func main() {
var a,b []byte
a = []byte("我我我爱你")
b = []byte("")
fmt.Println(bytes.Count(a,b))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a,b []byte
a = []byte("a")
b = []byte("A")
fmt.Println(bytes.EqualFold(a,b))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("ab c d")
var list [][]byte
list = bytes.Fields(a)
fmt.Println(list)
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("a=b&c=d&f==e")
var list [][]byte
var f = func (s rune) bool{
if(s=='&'){
return true
}
return false
}
list = bytes.FieldsFunc(a,f)
fmt.Printf("count:%d,%q",len(list),list)
}
image.png
9.字节切片是否包含前缀字符切片
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("xj-abcdef")
var b = []byte("xj")
fmt.Println(bytes.HasPrefix(a,b))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("xj-abcdef")
var b = []byte("ef")
fmt.Println(bytes.HasSuffix(a,b))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("xj-abcdef")
var b = []byte("ef")
fmt.Println(bytes.Index(a,b))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("xj-我abcdef")
var b = "efghe"
fmt.Println(bytes.IndexAny(a,b))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("xj-我abcdef")
var b = byte('e')
fmt.Println(bytes.IndexByte(a,b))
}
image.png
package main
import ( "bytes" "fmt" )
func main() { var a = []byte("xj-我爱abcdef") var f = func(r rune)bool{ return r > rune('我') } fmt.Println(bytes.IndexFunc(a,f)) }
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("xj-我爱abcdef")
var f = rune('我')
fmt.Println(bytes.IndexRune(a,f))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("xj")
var b = []byte("-abc")
var s = bytes.Join([][]byte{a,b},[]byte("&"))
fmt.Printf("%q",s)
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("xj")
var b = []byte("-abc")
var lastIndex = bytes.LastIndex(a,b)
fmt.Println(lastIndex)
}
未找到则返回-1
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("xjaaaa")
var b = "bcdefa"
var lastIndex = bytes.LastIndexAny(a,b)
fmt.Println(lastIndex)
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("xjaaaa")
var b = byte('a')
var lastIndex = bytes.LastIndexByte(a,b)
fmt.Println(lastIndex)
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
var a = []byte("123456f")
var f = func (r rune)bool{
return r == rune('f')
}
var lastIndex = bytes.LastIndexFunc(a,f)
fmt.Println(lastIndex)
}
image.png
func Map(mapping func(r rune) rune, s []byte) []
package main
import (
"bytes"
"fmt"
"strconv"
)
func main() {
var a = []byte("123456")
var f = func (r rune)rune{
s := string(r)
num,err := strconv.Atoi(s)
if(err != nil){
fmt.Println(err)
return rune(-1)
}
if(num > 5){
return rune(-1)
}
return r
}
result := bytes.Map(f,a)
fmt.Println(string(result))
}
image.png
Map 根据映射函数返回字节切片s的所有字符修改后的副本。如果映射返回负值,则字符将从字符串中删除而不会被替换。 s 和输出中的字符被解释为 UTF-8 编码的 Unicode 代码点
package main
import (
"bytes"
"fmt"
)
func main() {
fmt.Printf("%s\n", bytes.Repeat([]byte("abc"),3))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
fmt.Printf("%s\n", bytes.Replace([]byte("121416"),[]byte("1"),[]byte("a"),2))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("121416我")
r := bytes.Runes(s)
fmt.Printf("%d,%d\n",len(s),len(r))
}
image.png
package main
import (
"bytes"
"fmt"
)
func main() {
fmt.Printf("%s",bytes.Split([]byte("abcdef"),[]byte("d")))
}
image.png