0Pricing
Go Academy · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Runeとバイト
  2. stringsパッケージの関数
  3. strings.Builder
  4. Unicodeとutf8
← Go Academyに戻る