stringsパッケージの関数
分割、結合、トリミングを行います
「stringsパッケージの関数」はCoddyKit上の無料Go Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGo Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Go Academyコースには全4レッスンが含まれています。
stringsパッケージ
標準ライブラリのstringsパッケージには、テキストの検索、分割、結合、トリミング、大文字・小文字の変換に使える便利な関数が用意されています。
import "strings"でインポートします。
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.ToUpper("hello"))
}ContainsとHasPrefix
ループを書かずに部分文字列を確認できます。
strings.Contains(s, sub)は、subが含まれているかどうかを返します。strings.HasPrefixとstrings.HasSuffixは、先頭と末尾を確認します。
package main
import (
"fmt"
"strings"
)
func main() {
s := "golang"
fmt.Println(strings.Contains(s, "lan"))
fmt.Println(strings.HasPrefix(s, "go"))
}位置を検索する
strings.Index(s, sub)は最初に一致した位置のバイトインデックスを返し、見つからない場合は-1を返します。
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Index("chocolate", "col"))
fmt.Println(strings.Index("chocolate", "xyz"))
}文字列を分割する
strings.Split(s, sep)は、区切り文字を使って文字列をスライスに分割します。
CSV形式のデータの解析に最適です。
package main
import (
"fmt"
"strings"
)
func main() {
parts := strings.Split("a,b,c", ",")
fmt.Println(parts)
fmt.Println(len(parts))
}空白で分割する
strings.Fields(s)は、連続する空白ごとに分割し、空の要素を取り除きます。単語数のカウントに最適です。
package main
import (
"fmt"
"strings"
)
func main() {
words := strings.Fields(" the quick brown fox ")
fmt.Println(words)
fmt.Println(len(words))
}スライスを結合する
strings.Join(slice, sep)はSplitの逆で、区切り文字を挟んでスライスの要素を1つにつなぎ合わせます。
package main
import (
"fmt"
"strings"
)
func main() {
parts := []string{"2026", "05", "30"}
fmt.Println(strings.Join(parts, "-"))
}空白をトリミングする
strings.TrimSpace(s)は、先頭と末尾の空白を取り除きます。ユーザー入力のクリーニングに便利です。
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.TrimSpace(" hi there ") + "!")
}特定の文字をトリミングする
strings.Trim(s, cutset)は、指定した文字のいずれかを両端から取り除きます。TrimPrefixとTrimSuffixは、完全に一致する文字列を取り除きます。
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Trim("***name***", "*"))
fmt.Println(strings.TrimSuffix("file.txt", ".txt"))
}テキストを置換する
strings.ReplaceAll(s, old, new)は、すべての出現箇所を置き換えます。最初のn件の一致に限定するには、strings.Replace(s, old, new, n)を使用します。
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.ReplaceAll("a-b-c", "-", "+"))
fmt.Println(strings.Replace("a-b-c", "-", "+", 1))
}繰り返しとカウント
便利な関数をさらに2つ紹介します。
strings.Repeat(s, n)は、文字列を繰り返した結果を作成します。strings.Count(s, sub)は、重複しない出現箇所の数を数えます。
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Repeat("ab", 3))
fmt.Println(strings.Count("banana", "a"))
}関数を組み合わせる
これらの関数はうまく組み合わせて使えます。ここでは、乱雑な文字列をトリミング、分割、再結合して、整ったカンマ区切りのリストにします。
package main
import (
"fmt"
"strings"
)
func main() {
raw := " go rust zig "
words := strings.Fields(raw)
fmt.Println(strings.Join(words, ", "))
}クイックチェック
スライスを1つの文字列に結合する関数を選んでください。
まとめ:stringsの関数
これでテキストを扱うためのツールキットがそろいました。
- 検索:
Contains、Index、HasPrefix - 分割:
Split、Fields - 結合:
Join、Repeat - 整形:
TrimSpace、Trim、ReplaceAll
package main
import (
"fmt"
"strings"
)
func main() {
s := " Hello, Go World "
fmt.Println(strings.ToLower(strings.TrimSpace(s)))
}よくある質問
「stringsパッケージの関数」レッスンは無料ですか?
はい。「stringsパッケージの関数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Go Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Go Academyコースには全4レッスンが含まれています。
「stringsパッケージの関数」で何を学びますか?
分割、結合、トリミングを行います ブラウザで直接実行するハンズオンコードでGo Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Go Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのGo Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「stringsパッケージの関数」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このGo Academyレッスンでコードを書いて実行できますか?
はい。すべてのGo Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Runeとバイト
- stringsパッケージの関数
- strings.Builder
- Unicodeとutf8