go語言求字串長度的方法:1、使用「len()」函數計算ASCII字串長度;2、使用「utf8.RuneCountInString()」函數計算Unicode字串長度。
本文操作環境:Windows7系統、Go1.11.2版,Dell G3電腦。
推薦教學:《》
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語言如何求字串長度的詳細內容,更多請關注TW511.COM其它相關文章!