最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

全部開發(fā)者教程
首頁 慕課教程 Go 入門教程 Go 入門教程 42 Go 語言的 strings 系統(tǒng)包的使用

Go strings 系統(tǒng)包的使用說明

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

1. 獲取字符串長度

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

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

執(zhí)行結(jié)果:

圖片描述

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

2. 比較字符串

在開發(fā)大小寫不敏感的應(yīng)用場景時,比如說地名的英文縮寫。一般情況我們都將字符串轉(zhuǎn)換為大寫或者小寫再進行比較。Go 語言中的 strings 包中專門提供了一個大小寫不敏感的比較函數(shù)——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))
}

執(zhí)行結(jié)果:

圖片描述

3. 字符串分割

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

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

執(zhí)行結(jié)果:

圖片描述

4. 前后綴的判斷

在執(zhí)行文件操作的時候,經(jīng)常會用到的前后綴的操作,比如獲取日志文件的時候,獲取 .log 結(jié)尾,同時還要以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"))
}

執(zhí)行結(jié)果:

圖片描述

5. 去除前后空格

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

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

執(zhí)行結(jié)果:

圖片描述

6. 將字符串數(shù)組拼接為字符串

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

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

執(zhí)行結(jié)果:

圖片描述

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
}

執(zhí)行結(jié)果:

圖片描述

8. 小結(jié)

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