首頁  >  文章  >  後端開發  >  go語言如何求字串長度

go語言如何求字串長度

藏色散人
藏色散人原創
2020-12-29 16:33:225803瀏覽

go語言求字串長度的方法:1、使用「len()」函數計算ASCII字串長度;2、使用「utf8.RuneCountInString()」函數計算Unicode字串長度。

go語言如何求字串長度

本文操作環境: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn