Goで`strings.Replace`を使用してサブストリングを置き換える方法
Mar 01, 2025
# Go
Wenhao Wang
Dev Intern · Leapcell

Key Takeaways
strings.Replace
関数は、大文字と小文字を区別して部分文字列を置換できます。n
を-1
に設定すると、すべての出現箇所が置換されます。strings.NewReplacer
を使用すると、複数の部分文字列を効率的に置換できます。
Goプログラミングでは、strings
パッケージに、文字列内の指定された部分文字列の出現を置換するReplace
関数が用意されています。関数のシグネチャは次のとおりです。
func Replace(s, old, new string, n int) string
場所:
s
は元の文字列です。old
は置換される部分文字列です。new
はold
を置換する部分文字列です。n
は置換する非重複インスタンスの数を指定します。n
が0未満の場合、すべての出現箇所が置換されます。
使用例:
package main import ( "fmt" "strings" ) func main() { original := "Hello, World! Hello, Golang!" // すべての出現箇所を置換 result := strings.Replace(original, "Hello", "Hi", -1) fmt.Println(result) // Output: Hi, World! Hi, Golang! // 最初の出現箇所を置換 result = strings.Replace(original, "Hello", "Hi", 1) fmt.Println(result) // Output: Hi, World! Hello, Golang! // 最初の2つの出現箇所を置換 result = strings.Replace(original, "Hello", "Hi", 2) fmt.Println(result) // Output: Hi, World! Hi, Golang! }
大文字と小文字の区別:
Replace
関数は大文字と小文字を区別します。次に例を示します。
package main import ( "fmt" "strings" ) func main() { original := "Hello, World! HELLO, Golang!" // "hello"(小文字)を置換しようとします result := strings.Replace(original, "hello", "Hi", -1) fmt.Println(result) // Output: Hello, World! HELLO, Golang! }
この場合、「hello」は「Hello」または「HELLO」と一致しないため、置換は行われません。
複数の部分文字列の置換:
複数の置換を行う場合、strings
パッケージはReplacer
型を提供します。
package main import ( "fmt" "strings" ) func main() { original := "Hello, World! Hello, Golang!" replacer := strings.NewReplacer("Hello", "Hi", "World", "Earth") result := replacer.Replace(original) fmt.Println(result) // Output: Hi, Earth! Hi, Golang! }
Replacer
を使用すると、文字列内の複数の部分文字列を効率的かつ読みやすく置換できます。
strings.Replace
関数とReplacer
型を利用することで、Go開発者はアプリケーションの文字列置換を効果的に管理できます。
FAQs
strings.Replace(s, old, new, -1)
を使用します。
はい、old
の完全一致のみを置換します。
複数の置換にはstrings.NewReplacer
を使用します。
Leapcellは、Goプロジェクトをホストするための最良の選択肢です。
Leapcellは、Webホスティング、非同期タスク、およびRedis向けの次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い - リクエストも料金もかかりません。
比類のない費用対効果
- アイドル料金なしの従量課金制。
- 例:25ドルで、平均応答時間60msで694万リクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI / CDパイプラインとGitOps統合。
- 実用的な洞察を得るためのリアルタイムメトリックとロギング。
簡単なスケーラビリティと高パフォーマンス
- 高い同時実行性を容易に処理するための自動スケーリング。
- 運用上のオーバーヘッドはゼロ - 構築に集中するだけです。
ドキュメントで詳細をご覧ください。
Xでフォローしてください:@LeapcellHQ