golang中獲取字串長度的幾種方法

2021-07-24 18:48:01 字數 1156 閱讀 2947

一、獲取字串長度的幾種方法

- 使用 bytes.count() 統計

- 使用 strings.count() 統計

- 將字串轉換為 rune 後呼叫 len 函式進行統計

- 使用 utf8.runecountinstring() 統計

例:

str:="helloword"

l1:=len(rune(str))

l2:=bytes.count(byte(str),nil)-1)

l3:=strings.count(str,"")-1

l4:=utf8.runecountinstring(str)

fmt.println(l1)

fmt.println(l2)

fmt.println(l3)

fmt.println(l4)

列印結果:都是 9

二、strings.count函式和bytes.count函式

這兩個函式的用法是相同,只是乙個作用在字串上,乙個作用在位元組上

strings中的count方法

func count(s, sep string) int{}
判斷字元sep在字串s中出現的次數,沒有找到則返回-1,如果為空字串("")則返回字串的長度+1

例:

str:="helloworld"

fmt.println(strings.count(str,"o"))  //列印 o 出現的次數,列印結果為2

注:在 golang 中,如果字串中出現中文字元不能直接呼叫 len 函式來統計字串字元長度,這是因為在 go 中,字串是以 utf-8 為格式進行儲存的,在字串上呼叫 len 函式,取得的是字串包含的 byte 的個數。

str:="helloworld"

str1 := "hello, 世界"

fmt.println(len(str1)) // 列印結果:13

fmt.println(len(str)) //列印結果:9 (如果是純英文本元的字串,可以使用來判斷字串的長度)

獲取字串的長度

php中有乙個神奇的函式,可以直接獲取字串的長度,這個函式就是strlen 例子如下 str hello len strlen str echo len 輸出結果是5strlen函式對於計算英文字元是非常的擅長,但是如果有中文漢字,要計算長度該怎麼辦?可以使用mb strlen 函式獲取字串中中文長...

Lua中獲取字串長度

偶然的情況下,需要用lua 獲取字串的長度,結果發現結果和自己想象的不一樣,乙個漢字算兩個英文本元的時代已經快過去了,乙個中文字元列印出來的長度為3,引起了我的好奇,查詢資料了解了具體原因 不同的編碼格式佔位元組數是不同的,utf 8編碼下乙個中文所佔位元組也是不確定的,通常是3個字元,可能是2個 ...

Oracle獲取字串長度

oracle中常用的字串長度獲取方法,有兩個 lengthb string 和length string b是byte位元組的意思 其中 lengthb string 計算string所佔的位元組長度 返回字串的長度,單位是位元組 length string 計算string所佔的字元長度 返回字串...