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

Go言語の文字列の部分文字列(スライス)取得方法を徹底解説!初心者でも簡単に理解できる使い方

Go言語の文字列の部分文字列(スライス)取得方法
Go言語の文字列の部分文字列(スライス)取得方法

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

生徒

「Go言語で文字列の一部だけを取り出す方法ってありますか?」

先生

「はい、Go言語では文字列をスライスすることで部分文字列を取り出すことができます。」

生徒

「スライスって聞いたことがありますが、どういう意味なんですか?」

先生

「スライスとは配列や文字列の一部を切り出す操作のことです。Goではとてもよく使われる機能なので、順番に見ていきましょう。」

1. Go言語における文字列とスライスの基本

1. Go言語における文字列とスライスの基本
1. Go言語における文字列とスライスの基本

Go言語で文字列を扱うときにはstring型を使います。文字列は文字が並んだデータの集まりです。そしてGo言語では、この文字列の一部を取り出すために「スライス」という仕組みを利用します。

「スライス」という言葉は「切り取る」という意味です。たとえばパンをスライスして一枚だけ取るように、文字列から一部分を切り出すことができます。初心者が文字列操作を理解するうえで、このスライスの考え方はとても重要です。

2. 部分文字列を取得する基本構文

2. 部分文字列を取得する基本構文
2. 部分文字列を取得する基本構文

Go言語で文字列をスライスするときの基本構文は以下のようになります。


text[start:end]

このとき、startは切り出しを始める位置、endは切り出しを終える位置を表します。ただし、endの位置の文字は含まれないことに注意してください。

例えば、「Hello」という文字列から「He」だけを取り出したい場合は、text[0:2]と書きます。文字の数え方は0から始まるので、最初の文字「H」はインデックス0、次の「e」はインデックス1となります。

3. 部分文字列を取り出す具体例

3. 部分文字列を取り出す具体例
3. 部分文字列を取り出す具体例

それでは実際にGo言語で部分文字列を取り出してみましょう。


package main

import "fmt"

func main() {
    text := "Hello, World!"
    part1 := text[0:5]
    part2 := text[7:12]

    fmt.Println(part1)
    fmt.Println(part2)
}

Hello
World

この例では「Hello, World!」から「Hello」と「World」を切り出しています。スライスの数字を変えることで、自由に部分文字列を取得できます。

4. 省略記法を使った部分文字列の取得

4. 省略記法を使った部分文字列の取得
4. 省略記法を使った部分文字列の取得

Go言語ではスライスの開始位置や終了位置を省略することができます。

  • text[:end]:先頭からendの位置までを取得
  • text[start:]startから最後までを取得
  • text[:]:全文字列を取得

package main

import "fmt"

func main() {
    text := "Golang"
    fmt.Println(text[:4])   // Gola
    fmt.Println(text[2:])   // lang
    fmt.Println(text[:])    // Golang
}

Gola
lang
Golang

このように省略記法を使うと、より簡単に部分文字列を扱うことができます。

5. 日本語の文字列を扱うときの注意点

5. 日本語の文字列を扱うときの注意点
5. 日本語の文字列を扱うときの注意点

Go言語の文字列は内部的に「UTF-8」という形式で保存されています。そのため、英数字は1文字が1バイトですが、日本語のひらがなや漢字は1文字が3バイトになることがあります。

そのため、日本語文字列を単純にスライスすると文字化けする可能性があります。例えば「こんにちは」という文字列をスライスすると、正しく文字が切り出せない場合があります。

このような場合は、[]runeに変換してからスライスするのが一般的です。runeとは、Unicodeの文字を表す型のことです。


package main

import "fmt"

func main() {
    text := "こんにちは"
    runes := []rune(text)
    part := string(runes[0:3])
    fmt.Println(part)
}

こんにち

この方法なら日本語でも正しく部分文字列を取り出すことができます。初心者が日本語文字列を扱うときは必ず意識しておきましょう。

6. 部分文字列の応用例

6. 部分文字列の応用例
6. 部分文字列の応用例

部分文字列の取得は、実際のプログラムでもよく使われます。例えば、ユーザーが入力したメールアドレスからドメイン部分だけを取り出したり、URLから特定の部分を抽出したりする場面です。


package main

import "fmt"

func main() {
    email := "user@example.com"
    domain := email[5:]
    fmt.Println("Domain:", domain)
}

Domain: example.com

このようにスライスを活用することで、文字列を柔軟に操作できるようになります。データ処理や入力チェックなど、幅広い場面で役立ちます。

関連記事:
カテゴリの一覧へ
新着記事
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)とは?便利な特徴と使い方を初心者向けにやさしく解説!