2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Go】文字列を一部置換と全置換する方法

Last updated at Posted at 2021-02-14

準備

文字列の置換には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
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?