準備
文字列の置換にはstrings
と言うpackageを使用する為、まずはimportを行います。
https://golang.org/pkg/strings/
import
import "strings"
// 以下でも良い
import ("strings")
特定の数のみ置換したい場合
1つだけ置換したい場合や2つなど複数置換したい場合は、replace関数
を使います。
軽く説明
func Replace(s, old, new string, n int) string
第1引数:置換したい文字列
第2引数:置換前の値
第3引数:置換後の値
第4引数:置換したい数(int型)
返り値:置換された結果の文字列
(stringsのReplace関数なのでstrings.Replace()
と言う使い方)
具体例
一部置換
var title string = "SSSS.GRIDMAN"
fmt.Println(title) // => SSSS.GRIDMAN
// 1つのみ置換
oneReplace := strings.Replace(title, "S", "X", 1)
fmt.Println(oneReplace) // => XSSS.GRIDMAN
// 複数置換
multipleReplace := strings.Replace(title, "S", "X", 3)
fmt.Println(multipleReplace) // => XXXS.GRIDMAN
全て置換したい場合
ドキュメントのReplace関数
部分に
If n < 0, there is no limit on the number of replacements.
と言う記述があります。
つまり、replace関数
の第4引数が0未満だったら制限がない(=全置換)と言うことですね。
具体例
全置換
var title string = "SSSS.GRIDMAN"
fmt.Println(title) // => SSSS.GRIDMAN
allReplace := strings.Replace(title, "S", "X", -1) // -2でも-100でもOK
fmt.Println(allReplace) // => XXXX.GRIDMAN
もしくはreplaceAll関数
と言うのもあります。
軽く説明
func ReplaceAll(s, old, new string) string
第1引数:置換したい文字列
第2引数:置換前の値
第3引数:置換後の値
返り値:置換された結果の文字列
(strings.ReplaceAll()
と言う使い方)
具体例
全置換
var title string = "SSSS.GRIDMAN"
fmt.Println(title) // => SSSS.GRIDMAN
allReplace := strings.ReplaceAll(title, "S", "X")
fmt.Println(allReplace) // => XXXX.GRIDMAN