Go語言學習第七課-字串
阿新 • • 發佈:2018-12-10
字串是最常用的處理文字資訊的資料結構,Go語言提供了強大的字串操作庫strings,裡面含蓋了各種方法。比如分隔字串,大小寫轉換之類的,不做詳細講解,其它語言有的,Go語言基本都有,實際開發 時可以直接撥出strings進行查詢。
這裡主要說一下字串與rune,我們之前在Go語言的內建變數講到過rune,rune是Go語言的字元型別。
比如說,我們處理中文字串時。
s := "Yes你在幹嗎呢?"
fmt.Printf("%s\n",[]byte(s))
for _,b := range []byte(s){ //每個中文是三位元組 fmt.Printf("%X ",b) }
輸出結果是59 65 73 E4 BD A0 E5 9C A8 E5 B9 B2 E5 90 97 E5 91 A2 EF BC 9F 21
每個中文是一個三位元組的ASCII碼,如果我們想逐一得到每個字元,其中一種方法是通過utf8類進行轉碼
fmt.Println("rune count:",utf8.RuneCountInString(s)) bytes := []byte(s) for len(bytes)>0{ //解碼 ch, size := utf8.DecodeRune(bytes) bytes = bytes[size:] fmt.Printf("%c ",ch) }
另一種方法是,我們把字串轉成字元陣列,得到的就是轉碼後的utf-8的字符集
for i,ch := range []rune(s){
//rune是四位元組
fmt.Printf("%d %c",i,ch)
}