久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

Go strings 系統包的使用說明

前文我們有學習了 string 變量,發現 Go 語言并沒有向面向對象語言那樣,類型中自帶方法來處理對象的值。Go語言中也有類似的操作,其操作全都在?strings 系統包中實現了。本文主要來講解一下如何使用 strings 系統包比較常用的字符串操作

 

1. 獲取字符串長度

在往數據庫中寫入數據的時候,數據庫字段通常都會有長度限制,所以在寫入之前最好事先判斷一下字符串的長度是否符合自己的設計。

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? ? ? ? ? "strings"
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? ? str := "Hello Codey!"
  • 10? ? ? ? fmt.Println(len(str))
  • 11? ? ? ? fmt.Println(strings.Count(str, "")-1)
  • 12? }

執行結果:

圖片描述

其實獲取字符串長度常用的是用?len()?函數去獲取,因為?sring 的本質是一個 rune 切片,所以?len()?對 string 也是可以直接使用的。如果想要通過 strings 包來獲取長度,我們可以通過?strings.Count(str,s string)int?來迂回達到目的,尋找字符串中的空字符串的個數就相當于尋找字符之間的空隙(包括字符首尾),所以得到的數字就是長度+1,我們得到結果后再減去1,就可以得到字符串的長度了。

 

2. 比較字符串

在開發大小寫不敏感的應用場景時,比如說地名的英文縮寫。一般情況我們都將字符串轉換為大寫或者小寫再進行比較。Go 語言中的 strings 包中專門提供了一個大小寫不敏感的比較函數——strings.EqualFold(str1,str2 string)bool

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? ? ? ? ? "strings"
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? ? str1 := "Hello Codey!"
  • 10? ? ? ? str2 := "heLLo coDEy!"
  • 11? ? ? ? fmt.Println(strings.EqualFold(str1, str2))
  • 12? }

執行結果:

圖片描述

 

3. 字符串分割

Go 語言中也是可以支持根據特定字符串將字符串分割為字符串數組的操作。通過使用?strings.Split(s, sep string) []string?來實現

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? ? ? ? ? "strings"
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? ? str := "Hello Codey!"
  • 10? ? ? ? fmt.Println(strings.Split(str, " "))//使用空格字符串去分割str
  • 11? }

執行結果:

圖片描述

 

4. 前后綴的判斷

在執行文件操作的時候,經常會用到的前后綴的操作,比如獲取日志文件的時候,獲取 .log 結尾,同時還要以2020?5?開頭的文件,就需要判斷前后綴是否含有這些字符串,Go 語言的前綴判斷是使用?strings.HasPrefix(s, prefix string``)bool,而后綴是使用?strings.HasSuffix(s, prefix string``)bool

代碼示例

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? ? ? ? ? "strings"
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? ? str := "2020_5_20.log"
  • 10? ? ? ? fmt.Println(strings.HasPrefix(str, "2020_5_"))
  • 11? ? ? ? fmt.Println(strings.HasSuffix(str, ".log"))
  • 12? }

執行結果:

圖片描述

 

5. 去除前后空格

在處理前端輸入的數據的時候,有時會需要去除前后空格。Go 語言中使用?strings.TrimSpace(s string)string?來執行這個操作。

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? ? ? ? ? "strings"
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? ? str := " Hello Codey! "
  • 10? ? ? ? fmt.Println(strings.TrimSpace(str))
  • 11? }

執行結果:

圖片描述

 

6. 將字符串數組拼接為字符串

Go 語言中使用?strings.Join(a ``[]string, ``sep string) string?來將字符串數組,根據你想要的字符串進行拼接成為一個字符串。

代碼示例:

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"
  • 5? ? ? ? ? "strings"
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? ? str := []string{"Hello", "Hi"}
  • 10? ? ? ? fmt.Println(strings.Join(str, ","))//使用逗號拼接字符串
  • 11? }

執行結果:

圖片描述

 

7. 字符串替換

Go 語言中使用?strings.Replace(s, old, new string, n int) string?來進行字符串替換,n<0 時替換字符串中左右舊字符子串

代碼塊
  • 1? package main
  • 2
  • 3? import (
  • 4? ? ? ? ? "fmt"

  • 5? ? ? ? ? "strings"
  • 6? )
  • 7
  • 8? func main() {
  • 9? ? ? ? ? str := "Hello Codey!"
  • 10? ? ? ? fmt.Println(strings.Replace(str, "Hello", "Hi", -1))//將str中所有Hello替換為Hi
  • 11? }

執行結果:

圖片描述

 

8. 小結

本文主要介紹了 Go 語言的一個字符串操作包,這個包里面還有很多其它對字符串的操作,有興趣的讀者可以繼續研究。本文介紹的主要就是些開發中常用的字符串操作,在我的開發經歷中還是字符串的分割和替換用的最多,大家要注意的是?Go 語言中的字符串是變量,并不是對象,每次修改完字符串其實都會使用一個新的內存,所以在內存不充足的場景要慎用字符串操作

文章來源于網絡,侵刪!

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 惠安县| 博白县| 定州市| 南通市| 平塘县| 志丹县| 托克托县| 浦城县| 会理县| 华阴市| 泽库县| 陇川县| 阜阳市| 丹棱县| 霍邱县| 晋宁县| 嫩江县| 平山县| 湖口县| 佛冈县| 白河县| 临夏县| 碌曲县| 容城县| 中西区| 武宁县| 吉林市| 微山县| 苗栗县| 沙湾县| 古蔺县| 仙居县| 绥江县| 罗田县| 营口市| 芜湖县| 阜宁县| 五莲县| 金华市| 宜兴市| 张家界市|