はじめに
Go言語のstringsパッケージは、文字列操作のための機能が豊富に備わっています。その中の一つ、文字列置換を使う方法を今回は深掘りしていきましょう。置換処理はログの整形やテキストデータの整理など、さまざまな場面で必要になります。この記事では、stringsパッケージのReplace関数を使って、一部または全ての文字列を置換する方法を解説します。
[Go言語]stringとTimeの変換
string→time.Time yyyy-mm-dd HH:mm:ss 形式の文字列を変換する場合は下記のようにします target="2022-11-11 11:00:00" time.Parse("2006-01-02 15:04:0...
Replace関数の基本
まずは、stringsパッケージのReplace関数の基本的な使い方から見ていきましょう。Replace関数は次のように宣言されています。
func Replace(s, old, new string, n int) string
ここで、s
は元の文字列、old
は置換対象の文字列、new
は置換後の文字列、n
は置換を行う回数を指定します。n
に-1を指定すると、全ての置換対象の文字列を置換します。
package main
import (
"fmt"
"strings"
)
func main() {
s := "Hello, world!"
fmt.Println(strings.Replace(s, "world", "Go", -1))
// Output: Hello, Go!
}
複数の文字列の置換
同じ文字列内で複数の異なる文字列を置換したい場合はどうすればよいでしょうか。その場合、Replace関数をチェインさせることで実現できます。
package main
import (
"fmt"
"strings"
)
func main() {
s := "Hello, world! I love world!"
fmt.Println(strings.Replace(strings.Replace(s, "world", "Go", -1), "love", "like", -1))
// Output: Hello, Go! I like Go!
}
この例では、まず”world”を”Go”に置換し、次に”love”を”like”に置換しています。
まとめ
この記事では、Go言語のstringsパッケージにあるReplace関数を使って文字列の置換を行う方法を解説しました。Go言語ではこのように標準パッケージだけで文字列の置換が可能で、非常に便利です。