1. 程式人生 > >Go語言學習第七課-字串

Go語言學習第七課-字串

字串是最常用的處理文字資訊的資料結構,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)
	}