1. 程式人生 > >go_字符和字符串處理

go_字符和字符串處理

ins Go 操作 bytes pack decode ack count 字符數

rune相當於go的char

使用range遍歷pos,rune對

使用utf8.RuneCountInString(s)獲得字符數量

使用len獲得字節長度,使用[]byte獲得字節

一般把字節轉成[]rune,更加容易操作

package main

import (
	"fmt"
	"unicode/utf8"
)

func main() {
	s:="Yes我愛上百度!"
	fmt.Println(s)
	for _,b:=range []byte(s)  {
		fmt.Printf("%X ",b)
	}
	fmt.Println()

	for i,ch:=range s{//ch is  a rune
		fmt.Printf("(%d %X)",i,ch)
	}
	fmt.Println()
	fmt.Println("Rune 長度",
			utf8.RuneCountInString(s))

	bytes :=[]byte(s)
	for len(bytes)>0{
		ch,size:=utf8.DecodeRune(bytes)
		bytes = bytes[size:]
		fmt.Printf("%c ",ch)
	}
	fmt.Println()

	for i,ch :=range []rune(s){
		fmt.Printf("(%d %c)",i,ch)
	}
	fmt.Println()
}

  

go_字符和字符串處理