カテゴリ: Go言語 更新日: 2025/10/18

Go言語のstringsパッケージの便利な関数まとめ(Trim・Splitなど)

Go言語のstringsパッケージの便利な関数まとめ(Trim・Splitなど)
Go言語のstringsパッケージの便利な関数まとめ(Trim・Splitなど)

先生と生徒の会話形式で理解しよう

生徒

「Goで文字列を扱うときに便利な方法はありますか?」

先生

「はい、Goにはstringsというパッケージがあって、文字列を処理するための便利な関数がたくさん用意されています。」

生徒

「例えばどんなことができるんですか?」

先生

「空白を取り除いたり、文字列を分割したり、大小文字を変換したりと、日常的に使う操作を簡単にできますよ。」

1. stringsパッケージとは?

1. stringsパッケージとは?
1. stringsパッケージとは?

Go言語のstringsパッケージは、文字列処理に役立つ標準ライブラリです。文字列を扱う場面はプログラムの中でとても多く、ユーザー入力の処理、テキストデータの加工、ファイル内容の解析などで頻繁に使われます。これを覚えると、文字列処理がぐっと楽になります。

2. Trim系関数で不要な文字を削除

2. Trim系関数で不要な文字を削除
2. Trim系関数で不要な文字を削除

Trimは文字列の先頭と末尾から指定した文字を削除します。特にstrings.TrimSpaceは前後の空白や改行を取り除くのによく使われます。


package main

import (
    "fmt"
    "strings"
)

func main() {
    text := "   Go言語   "
    fmt.Println(strings.TrimSpace(text)) // "Go言語"
}

ユーザーが入力したデータは意図せず空白が入ることが多いので、比較や保存の前にTrimSpaceで整えるのが安心です。

3. Split関数で文字列を分割

3. Split関数で文字列を分割
3. Split関数で文字列を分割

strings.Splitは区切り文字で文字列を分割して配列にしてくれます。CSVのようなカンマ区切りのデータを処理するときに便利です。


package main

import (
    "fmt"
    "strings"
)

func main() {
    data := "apple,banana,grape"
    fruits := strings.Split(data, ",")
    fmt.Println(fruits) // ["apple" "banana" "grape"]
}

Splitを使うことで、ひとつの文字列から複数の値を取り出せます。ユーザー入力を「名前,年齢,住所」といった形で処理するときにも役立ちます。

4. Join関数で配列を結合

4. Join関数で配列を結合
4. Join関数で配列を結合

分割した文字列を再びひとつの文字列にまとめたいときはstrings.Joinを使います。これは逆に「配列を文字列に変換する」操作です。


package main

import (
    "fmt"
    "strings"
)

func main() {
    items := []string{"Go", "Python", "Java"}
    result := strings.Join(items, " / ")
    fmt.Println(result) // "Go / Python / Java"
}

配列を見やすく表示したいときや、ファイル保存用に文字列を作るときに重宝します。

5. Replace関数で文字列の置換

5. Replace関数で文字列の置換
5. Replace関数で文字列の置換

ある文字列の一部を別の文字列に置き換えるにはstrings.Replaceを使います。第三引数で新しい文字列を指定し、第四引数で置換回数を指定できます。すべて置換したいときは-1を指定します。


package main

import (
    "fmt"
    "strings"
)

func main() {
    text := "I like Go. Go is fun."
    newText := strings.Replace(text, "Go", "Golang", -1)
    fmt.Println(newText) // "I like Golang. Golang is fun."
}

置換はデータの整形や変換に欠かせません。例えば、旧システムの表記を新システムに揃えるときなどに活用します。

6. Contains・HasPrefix・HasSuffixで部分一致

6. Contains・HasPrefix・HasSuffixで部分一致
6. Contains・HasPrefix・HasSuffixで部分一致

文字列の一部を探したいときにはstrings.Containsを使います。また、先頭一致を調べるHasPrefix、末尾一致を調べるHasSuffixも便利です。


package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "golang.org"
    fmt.Println(strings.Contains(s, "lang")) // true
    fmt.Println(strings.HasPrefix(s, "go"))  // true
    fmt.Println(strings.HasSuffix(s, ".org")) // true
}

URLやファイル名、メールアドレスの検証で使うことが多い関数です。

7. ToUpper・ToLowerで大小文字変換

7. ToUpper・ToLowerで大小文字変換
7. ToUpper・ToLowerで大小文字変換

文字列をすべて大文字や小文字に変換するにはstrings.ToUpperstrings.ToLowerを使います。ユーザー入力を正規化して比較するのに役立ちます。


package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.ToUpper("golang")) // "GOLANG"
    fmt.Println(strings.ToLower("GOLANG")) // "golang"
}

検索機能やデータベース照合などで、大文字小文字の違いを吸収できるのが便利です。

8. 実用例:ユーザー入力処理に組み合わせる

8. 実用例:ユーザー入力処理に組み合わせる
8. 実用例:ユーザー入力処理に組み合わせる

実際のアプリケーションでは、入力値の前後空白を削除し、大小文字を統一し、区切り文字で分割するという流れでよく使います。


package main

import (
    "fmt"
    "strings"
)

func main() {
    input := "  Alice,BOB,carol  "
    trimmed := strings.TrimSpace(input)
    lowered := strings.ToLower(trimmed)
    names := strings.Split(lowered, ",")
    fmt.Println(names) // ["alice" "bob" "carol"]
}

このように組み合わせることで、入力のゆらぎを吸収して安定したデータ処理が可能になります。

関連記事:
カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!