golang學習筆記--中英文字符串截取


用golang截取字符串時需要用到string 包, 通過將字符串轉為[]byte類型進行切片並用string轉為截取完的字符串結果

// 截取字符串前三位
str := "fidding"
str = string([]byte(str)[:3])
// 結果為 "fid"
fmt.Println(str) 

[startIndex:endIndex]使用的是半開半閉區間(左邊為閉,右邊為開),即startIndex<=n<endIndex

不要以為這樣就解決了字符串截取問題,當遇到中文時,上面的代碼便行不通了,因為中文在golang是3個字符。

這時候就需要用到另外一個類型rune ,使用時不考慮unicode字節,即一個中文只占一個數組下標

將上面的代碼修改如下:

// 截取字符串前三位
str := "你好fidding"
str = string([]rune(str)[0:3]) 
// 結果為 "你好f"
fmt.Println(str) 

  

golang的切片[:]並不能使用形如[:-1]這樣的反向切片,當遇到截取字符串后三位時,就需要先計算字符串長度再去換算

// 截取字符串后三位
str := "fidding你好"
str = string([]rune(str)[len([]rune(str))-3:])
// 結果為 "g你好"
fmt.Println(str) 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM