Goで文字列の置き換えをする(strings packageのReplace)
Goで文字列の置き換えをする際には、strings.Replace を使用する。
使い方
置き換える全体の文字列、置き換え前の部分文字列、置き換え後の部分文字列、置き換えを行う部分文字列の数を指定して置き換えを行う。
関数のシグネチャは以下
func Replace(s, old, new string, n int) string
引用元: strings - The Go Programming Language
第1引数:置き換えされる全体の文字列
第2引数:第1引数の全体の文字列の中で、置き換えされる部分文字列
第3引数:第2引数を置き換え後の部分文字列
第4引数:置き換えを行う部分文字列の数
なお、第4引数を-1にすると第1引数内の全ての第2引数で指定した部分文字列を第3引数で指定した部分文字列に置き換える。
## 実際に使ってみた
コード
package main
import (
"fmt"
"strings"
)
func main() {
str := "Go Java JavaScript Typescript CofeeScript"
// 普通に表示
fmt.Printf("str : %s\n", str)
// 最初の"Java"という文字列だけ置き換え
replaced1 := strings.Replace(str, "Java", "Replaced", 1)
fmt.Printf("replaced1 : %s\n", replaced1)
// 全部のJavaを置き換え
replaced2 := strings.Replace(str, "Java", "Replaced", -1)
fmt.Printf("replaced2 : %s\n", replaced2)
// 全部のScriptを置き換え
// Typescriptの"script"は小文字のため、変更されない
replaced3 := strings.Replace(str, "Script", "Replaced", -1)
fmt.Printf("replaced3 : %s\n", replaced3)
}
実行結果
str : Go Java JavaScript Typescript CofeeScript
replaced1 : Go Replaced JavaScript Typescript CofeeScript
replaced2 : Go Replaced ReplacedScript Typescript CofeeScript
replaced3 : Go Java JavaReplaced Typescript CofeeReplaced