亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

首頁 慕課教程 Go 入門教程 Go 入門教程 42 Go 語言的 strings 系統包的使用

Go strings 系統包的使用說明

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

1. 獲取字符串長度

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello Codey!"
    fmt.Println(len(str))
    fmt.Println(strings.Count(str, "")-1)
}

執行結果:

圖片描述

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

2. 比較字符串

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str1 := "Hello Codey!"
    str2 := "heLLo coDEy!"
    fmt.Println(strings.EqualFold(str1, str2))
}

執行結果:

圖片描述

3. 字符串分割

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello Codey!"
    fmt.Println(strings.Split(str, " "))//使用空格字符串去分割str
}

執行結果:

圖片描述

4. 前后綴的判斷

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

代碼示例

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "2020_5_20.log"
    fmt.Println(strings.HasPrefix(str, "2020_5_"))
    fmt.Println(strings.HasSuffix(str, ".log"))
}

執行結果:

圖片描述

5. 去除前后空格

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "           Hello Codey!          "
    fmt.Println(strings.TrimSpace(str))
}

執行結果:

圖片描述

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

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := []string{"Hello", "Hi"}
    fmt.Println(strings.Join(str, ","))//使用逗號拼接字符串
}

執行結果:

圖片描述

7. 字符串替換

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

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "Hello Codey!"
    fmt.Println(strings.Replace(str, "Hello", "Hi", -1))//將str中所有Hello替換為Hi
}

執行結果:

圖片描述

8. 小結

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