第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

全部開發(fā)者教程

Go 入門教程

Go 語言基礎(chǔ)教程
01 Go語言簡(jiǎn)介 02 Go 在 Windows 上的安裝及配置 03 Go 在 Linux 上的安裝與配置 04 Go 在 MacOS 上的安裝及配置 05 Git 的下載和安裝 06 VSCode 編輯器安裝和配置 07 Go 的變量聲明 08 Go 的變量賦值 09 Go 語言的 := 10 Go 的整型(int) 11 Go 的無符號(hào)整型(uint) 12 Go 的浮點(diǎn)型(float) 13 Go 的字符類型 14 Go 的布爾型(bool) 15 Go 的強(qiáng)制類型轉(zhuǎn)換 16 Go 語言的常量 17 Go 語言中代替枚舉的辦法 18 Go 語言中的運(yùn)算符 19 Go 語言的分支語句 20 Go 語言的循環(huán)語句 21 Go 語言的通道 22 Go 語言中的函數(shù) 23 Go 語言函數(shù)中的 defer 24 Go 語言中的閉包 25 Go 語言的指針 26 Go 語言中的數(shù)組 27 Go 語言中的切片 28 Go 語言中的 Map 29 Go 語言中的 range 30 Go 語言拓展以有類型 31 Go 語言中的結(jié)構(gòu)體和"面向?qū)ο?quot; 32 Go 語言中的接口 33 Go 語言類型的內(nèi)嵌 34 Go 語言中的 nil 35 Go 語言函數(shù)式編程 36 Go 語言中的錯(cuò)誤和異常處理 37 Go 語言的并發(fā) 38 Go 語言中的包 39 Go 語言 go mod 包依賴管理工具 40 Go 語言的文件操作 41 Go 語言中的系統(tǒng)包 42 Go 語言的 strings 系統(tǒng)包的使用 43 Go 語言中的變參 44 Go 語言中的反射 45 Go 語言性能測(cè)試 46 使用 Go 語言搭建簡(jiǎn)易登錄功能 47 使用 gin 包優(yōu)化登錄功能
首頁(yè) 慕課教程 Go 入門教程 Go 入門教程 42 Go 語言的 strings 系統(tǒng)包的使用

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

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

1. 獲取字符串長(zhǎng)度

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

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

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

圖片描述

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

2. 比較字符串

在開發(fā)大小寫不敏感的應(yīng)用場(chǎng)景時(shí),比如說地名的英文縮寫。一般情況我們都將字符串轉(zhuǎn)換為大寫或者小寫再進(jìn)行比較。Go 語言中的 strings 包中專門提供了一個(gè)大小寫不敏感的比較函數(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ù)特定字符串將字符串分割為字符串?dāng)?shù)組的操作。通過使用 strings.Split(s, sep string) []string 來實(shí)現(xiàn)

代碼示例:

package main

import (
    "fmt"
    "strings"
)

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

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

圖片描述

4. 前后綴的判斷

在執(zhí)行文件操作的時(shí)候,經(jīng)常會(huì)用到的前后綴的操作,比如獲取日志文件的時(shí)候,獲取 .log 結(jié)尾,同時(shí)還要以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ù)的時(shí)候,有時(shí)會(huì)需要去除前后空格。Go 語言中使用 strings.TrimSpace(s string)string 來執(zhí)行這個(gè)操作。

代碼示例:

package main

import (
    "fmt"
    "strings"
)

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

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

圖片描述

6. 將字符串?dāng)?shù)組拼接為字符串

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

代碼示例:

package main

import (
    "fmt"
    "strings"
)

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

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

圖片描述

7. 字符串替換

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

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