天天看點

Go語言strings包處理字元串的一系列功能函數示例講解

作者:萬通小王子王如棋

strings包提供了Go語言中操作字元串的方法,提供了一系列函數用于處理字元串,包括比較、查找、替換、轉換等功能。

以下是一些常用的示例代碼:

1、比較兩個字元串:strings.Compare()

package main

import (
    "fmt"
    "strings"
)

func main() {
    s1 := "天生我材必有用"
    s2 := "腹有詩書氣自華,讀書萬卷始通神"
    fmt.Println(strings.Compare(s1, s2))
    //-1
}           

傳回值小于0表示s1小于s2,等于0表示s1等于s2,大于0表示s1大于s2。

Go語言strings包處理字元串的一系列功能函數示例講解

2、查找子串:strings.Contains()

package main

import (
    "fmt"
    "strings"
)

func main() {
    s1 := "書山有路勤為徑,學海無涯苦作舟"
    s2 := "學海無涯苦作舟"
    fmt.Println(strings.Contains(s1, s2))
    //true
}           

傳回bool值,如果存在子串則傳回true,否則傳回false。

3、字元串替換:strings.Replace()、strings.ReplaceAll

package main

import (
    "fmt"
    "strings"
)

func main() {
    s1 := "君子喻于義,小人喻于利,小人喻于利"
    s2 := "喻"
    s3 := "喻1"
    fmt.Println(strings.Replace(s1, s2, s3, 2))
    //君子喻1于義,小人喻1于利,小人喻于利
}           

第四個參數控制替換的次數,2表示替換兩處,-1表示替換所有。

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "世上無難事,隻怕有心人呵呵呵"
    str = strings.ReplaceAll(str, "呵", "哈")
    fmt.Println(str)
    //世上無難事,隻怕有心人哈哈哈
}           

将字元串"世上無難事,隻怕有心人呵呵呵"中的“呵”替換為“哈”,最終列印出結果“世上無難事,隻怕有心人哈哈哈”,strings.ReplaceAll是替換所有。

Go語言strings包處理字元串的一系列功能函數示例講解

4、轉換函數:ToUpper()、ToLower()、Title()

package main
import (
    "fmt"
    "strings"
)
func main() {
    str := "hello world"
    //轉換為大寫
    str = strings.ToUpper(str)
    fmt.Println(str)
    //HELLO WORLD
    //strings.ToLower():轉換為小寫
  
    //Title()函數将字元串的每個單詞的首字母都轉換成大寫
    fmt.Println(strings.Title("hello world"))
    //Hello World
}           
Go語言strings包處理字元串的一系列功能函數示例講解

5、拆分函數:Split()、Fields()

package main
import (
    "fmt"
    "strings"
)
func main() {
    str := "hello,world"
    fmt.Println(strings.Split(str, ","))
    //[hello world]
    str1 := "hello,world"
    fmt.Println(strings.Fields(str1))
    //[hello,world]
}           

将字元串“hello,world”拆分為“hello”和“world”兩個子字元串,結果輸出為一個字元串數組。

Split()函數與Fields()函數之間的主要差別是,Split()函數需要指定拆分字元,而Fields()函數不需要指定拆分字元,它會預設按照空格,換行和Tab符号來進行拆分。