go語言求字串長度的方法:1、使用「len()」函數計算ASCII字串長度;2、使用「utf8.RuneCountInString()」函數計算Unicode字串長度。
本文操作環境:Windows7系統、Go1.11.2版,Dell G3電腦。
推薦教學:《go語言》
#Go語言運算字串長度-len()與RuneCountInString()
Go 語言的內建函數len(),可以用來取得切片、字串、通道(channel)等的長度。下面的程式碼可以用 len() 來取得字串的長度。
tip1 := "genji is a ninja" fmt.Println(len(tip1)) tip2 := "忍者" fmt.Println(len(tip2))
程式輸出如下:
16 6
len() 函數的傳回值的型別為 int,表示字串的 ASCII 字元數或位元組長度。
輸出中第一行的 16 表示 tip1 的字元數為 16。
輸出中第二行的 6 表示 tip2 的字元格式,也就是「忍者」的字元數目是 6,然而根據習慣,「忍者」的字元數應該是 2。
這裡的差異是由於 Go 語言的字串都以 UTF-8 格式保存,每個中文佔用 3 個字節,因此使用 len() 獲得兩個中文文字對應的 6 個位元組。
如果希望以習慣上的字元數來計算,就需要使用 Go 語言中 UTF-8 套件提供的 RuneCountInString() 函數,統計 Uncode 字元數量。
下面的程式碼展示如何計算UTF-8的字元數。
fmt.Println(utf8.RuneCountInString("忍者")) fmt.Println(utf8.RuneCountInString("龙忍出鞘,fight!"))
程式輸出如下:
2 11
一般遊戲中登入時都需要輸入名字,而名字一般有長度限制。考慮到國人習慣使用中文做名字,就需要偵測字串 UTF-8 格式的長度。
總結
ASCII 字串長度使用 len() 函數。
Unicode 字串長度使用 utf8.RuneCountInString() 函數。
以上是go語言如何求字串長度的詳細內容。更多資訊請關注PHP中文網其他相關文章!