カテゴリ: Go言語 更新日: 2026/02/17

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

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

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

生徒

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

先生

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

生徒

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

先生

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

1. stringsパッケージとは?

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

Go言語には、文字列を便利に加工できる標準ライブラリとしてstringsパッケージが用意されています。プログラムで文字列を扱う機会はとても多く、たとえばユーザー入力を整えたり、テキストデータから必要な情報を抜き出したり、ファイルを読み込んで内容を加工したりと、さまざまな場面で使われます。stringsパッケージを知っておくと、「空白を取り除く」「文字を探す」「文字列をまとめる」といった操作が簡単にできるようになり、初心者でも扱いやすいのが特徴です。

まずは、どんな場面で便利なのかをイメージしやすいように、簡単なサンプルを見てみましょう。


package main

import (
    "fmt"
    "strings"
)

func main() {
    text := "  Hello Go  "
    cleaned := strings.TrimSpace(text)
    fmt.Println("整えた文字:", cleaned)
}

この例では、前後に余分な空白が入った文字列をstrings.TrimSpaceで整えています。こうした「ちょっとした文字の修正」を、自分で複雑なコードを書かずにできるのがstringsパッケージの強みです。今後のサンプルでも、文字列の分割や結合、検索などを順番に確認しながら、実際にどんな使い方ができるのかを紹介していきます。

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

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

Trimは文字列の先頭と末尾から、指定した文字や空白を取り除くための便利な関数です。特にstrings.TrimSpaceは「前後に余計な空白が混ざってしまった入力」を整えるときによく使われます。ユーザーが入力した文字列やファイルから読み込んだテキストには、気づかないうちにスペースや改行が含まれることがあり、そのまま比較・保存すると正しく動かない場合があります。

例えば、ログインフォームで「名前」を入力してもらうとき、「Taro」と入力したつもりが「 Taro 」のように空白が混ざることは珍しくありません。そうした小さなズレを防ぐために、前後の余計な空白だけをきれいに取り除いてくれます。


package main

import (
    "fmt"
    "strings"
)

func main() {
    text := "   Go言語   "
    cleaned := strings.TrimSpace(text)
    fmt.Println("整えた文字:", cleaned)
}

このサンプルでは、空白だらけの文字列をTrimSpaceで整理し、余計なスペースを削除した文字だけを取り出しています。もしこの前後の空白が残ったまま比較した場合、「Go言語」と同じ内容なのに違うものとして扱われてしまうことがあります。ちょっとした処理ですが、データのチェックや検索でも役に立つ大切なテクニックです。

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言語でよく使われるstringsパッケージの便利な関数をひとつずつ見てきました。文字列処理というと難しい印象を持たれがちですが、実際には「空白を整える」「区切って分ける」「まとめて連結する」「置き換える」「含まれているか調べる」「大文字小文字を揃える」といった、日常の作業に近い操作が中心でした。特に、初心者がつまずきやすいポイントとして、文字列についた余計な空白や改行、あるいは入力の揺れによって正しく比較できない場面がよくあります。そうした細かい問題を手作業で直そうとすると、複雑なコードになったり、バグの原因になりやすいのですが、stringsパッケージを使えば一行で処理できるため、コードも読みやすく、メンテナンスしやすい形にまとまります。

特に、TrimやSplitは実務でも頻繁に使う場面が多いです。フォームから送られたテキストデータは、意図せず前後に空白が入り込むことがありますし、区切り文字でまとめられた情報を分割して処理するという流れは、Web開発やデータ分析でもよく登場します。さらに、JoinやReplaceを使って文字列を整形すれば、加工した情報をログとして残すときや、ファイルに保存する前の整え作業にも役立ちます。HasPrefixやHasSuffixで先頭や末尾を調べられるのも便利で、拡張子の判定やURLの確認など、ちょっとした検証をしたいときに大きな力を発揮してくれます。こうした関数を覚えておくことで、毎回同じ仕組みを一から作らなくてもよくなるため、作業の効率が大幅に変わります。

また、ToUpperやToLowerによる大小文字の統一も、見た目は地味ですがとても重要です。大文字と小文字が違うだけで別の文字列として扱われてしまうため、比較したいときや検索したいときに結果が変わってしまう可能性があります。特に、ユーザー名や商品名をチェックする処理を作るときには、まず小文字に揃えてから判定する、というような手順が安全です。ソフトウェア開発では、人が入力する値は思った以上にばらつきがあるので、前処理で正規化しておくと、トラブルを避けられることが多くなります。stringsパッケージは、そうした「入力が不確実な場面」を助けてくれる存在ともいえます。

まとめ用のサンプルプログラム

最後に、まとめとして複数のstrings関数を組み合わせたサンプルコードを紹介します。文字列の整形から分割、表示用の加工まで一連の流れを確認できます。


package main

import (
    "fmt"
    "strings"
)

func main() {
    input := "   GO,Python,java  "
    trimmed := strings.TrimSpace(input)
    lowered := strings.ToLower(trimmed)
    items := strings.Split(lowered, ",")
    result := strings.Join(items, " / ")
    fmt.Println("加工後:", result)
}

このサンプルでは、最初に余計な空白を取り除き、すべて小文字に揃え、カンマで分割し、それを読みやすい形で結合しています。もしこれを自力で処理しようとすると、文字をひとつずつ調べたり、位置を探して切り取ったりと、かなり長いコードになってしまいます。stringsパッケージが用意されているからこそ、短くて読みやすいプログラムが書けるのです。こうした知識は、小さなスクリプトから実務的なアプリケーションまで幅広く使えるため、早い段階で覚えておくととても便利です。

Go言語を学び始めたばかりの人でも、文字列処理は必ず触れるテーマです。そして、stringsパッケージを知らないまま進むと、思ったより手間のかかる処理をすべて手書きで実装することになり、コードが複雑になるだけでなく、バグが入り込む隙も大きくなります。シンプルな関数でスマートに解決できる部分は積極的に任せてしまい、プログラミングの負担を軽くしていくことが、長い目で見ると大きな差につながります。標準ライブラリは自由に使ってよい道具なので、遠慮せず活用してみてください。

先生と生徒の振り返り会話

生徒

「stringsパッケージって、ただ便利なだけじゃなくて、ミスを減らす意味も大きいんですね。」

先生

「そのとおりです。文字列は見えない空白や微妙な違いが多いので、自分で全部処理しようとすると気づきにくいバグが増えてしまいます。専用の関数を使ったほうが安全で確実なんです。」

生徒

「Splitで分割して、Joinでまとめて、ToLowerで小文字に揃える……組み合わせるといろんなことができそうです。」

先生

「まさにそこがstringsパッケージの強みです。単体でも役に立ちますが、複数を組み合わせると実用的な処理になります。」

生徒

「今まで難しそうと思っていた文字列処理が、ちょっと身近に感じられました!」

先生

「その気持ちがとても大切です。実際に使いながら慣れていきましょう。小さなプログラムでも、文字列処理の場面は案外たくさんありますよ。」

Go言語を基礎からスッキリ学びたい人や、 文法だけでなく「実用的な使い方」まで押さえたい人には、 定番の入門書がこちらです。

基礎からわかるGo言語をAmazonで見る

※ Amazon広告リンク

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Go言語のstringsパッケージとは何ですか?初心者でも使える機能ですか?

Go言語のstringsパッケージは、文字列処理に特化した便利な標準ライブラリです。空白削除、分割、結合、置換、大文字小文字変換など基本的な操作が簡単にできます。複雑なコードを書かずに実装できるため、プログラミング初心者でも安心して使えます。
関連セミナーのご案内

【超入門】ゼロから始めるGo言語プログラミング:最速で「動くアプリ」を作るマンツーマン指導

「プログラミングの仕組み」が根本からわかる。Go言語でバックエンド開発の第一歩を。

本講座を受講することで、単なる文法の暗記ではなく、「プログラムがコンピュータの中でどう動いているか」という本質的な理解につながります。シンプルながら強力なGo言語(Golang)を通じて、現代のバックエンドエンジニアに求められる基礎体力を最短距離で身につけます。

具体的な開発内容と環境

【つくるもの】
ターミナル(黒い画面)上で動作する「対話型計算プログラム」や、データを整理して表示する「ミニ・ツール」をゼロから作成します。自分の書いたコードが形になる感動を体験してください。

【開発環境】
プロの現場でシェアNo.1のVisual Studio Code (VS Code)を使用します。インストールから日本語化、Go言語用の拡張機能設定まで、現場基準の環境を一緒に構築します。

この60分で得られる3つの理解

1. 環境構築の完全な理解

「なぜ動くのか」という設定の仕組みを理解し、今後の独学で詰まらない土台を作ります。

2. Go言語の基本構造(変数・型)

データの種類やメモリの概念など、他言語にも通じるプログラミングの本質を学びます。

3. 読みやすいコードの書き方

ただ動くだけでなく、誰が見ても分かりやすい「綺麗なコード」を書くための考え方を伝授します。

※本講座は、将来的にバックエンドエンジニアクラウドインフラに興味がある未経験者のためのエントリー講座です。マンツーマン形式により、あなたの理解度に合わせて進行します。

セミナー画像

初めてのGo言語を一緒に学びましょう!

関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.5
Java&Spring記事人気No5
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.6
Java&Spring記事人気No6
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説