首頁 > 後端開發 > Golang > 主體

golang string 替換

王林
發布: 2023-05-27 13:03:37
原創
1698 人瀏覽過

golang中的字串(string)是非常常見的資料型別之一,處理字串時,我們常常需要使用到字串替換的方法。本文將介紹在golang中實作字串替換的幾種方法。

  1. strings.Replace

strings.Replace是golang內建的字串替換函數,其函數原型如下:

func Replace(s, old, new string, n int) string
登入後複製

參數說明:

  • s:代表需要進行替換的原始字串;
  • old:代表需要被替換的字串;
  • new:代表需要替換成的新字符字串;
  • n:表示替換的次數,-1表示全部替換。

範例程式碼如下:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "hello world"
    newStr := strings.Replace(str, "l", "*", -1)
    fmt.Println(newStr) // he**o wor*d
}
登入後複製

要注意的是,strings.Replace會傳回一個新的字串,不會修改原始字串。

  1. strings.ReplaceAll

strings.ReplaceAll是strings.Replace函數的簡化版,其函數原型如下:

func ReplaceAll(s, old, new string) string
登入後複製

範例程式碼如下:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "hello, world"
    newStr := strings.ReplaceAll(str, ",", " ")
    fmt.Println(newStr) // hello  world
}
登入後複製
  1. strings.Replacer

strings.Replacer是golang中比較靈活的字串替換方法,其可以一次性替換多個字符,同時允許替換時不區分大小寫。範例程式碼如下:

package main

import (
    "fmt"
    "strings"
)

func main() {
    str := "hello, world"
    r := strings.NewReplacer(",", " ", "world", "golang", "l", "L")
    newStr := r.Replace(str)
    fmt.Println(newStr) // hello golang
}
登入後複製

要注意的是,strings.Replacer也會傳回一個新的字串,不會修改原始字串。

  1. bytes.Replace

除了使用strings套件進行字串替換外,還可以使用bytes.Replace函數進行位元組數組替換。由於golang中字串本質上就是一個唯讀的字元序列,因此需要把字串轉換為位元組陣列進行處理。範例程式碼如下:

package main

import (
    "bytes"
    "fmt"
)

func main() {
    str := "hello, world"
    oldByte := []byte(",")
    newByte := []byte(" ")
    newBytes := bytes.Replace([]byte(str), oldByte, newByte, -1)
    newStr := string(newBytes)
    fmt.Println(newStr) // hello  world
}
登入後複製

要注意的是,bytes.Replace同樣會傳回一個新的位元組序列,需要將其轉換為字串形式才能進行輸出。

綜上所述,golang中實作字串替換可以使用內建的strings套件或bytes套件的相關函數來實現。其中strings.Replace、strings.ReplaceAll和strings.Replacer是常用的字串替換方法。

以上是golang string 替換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!