Go言語 文字列の一部を取得する(スライス)

Go言語の文字列の一部を取得するサンプルです。

目次

文字列[開始:終了] 文字列の一部を取得する
文字列[開始:] 文字列の途中から最後までを取得する
文字列[:終了] 終了の位置を指定して最初から取得する

文字列の一部を取得する

文字列[ 開始位置:終了位置]
  • 1つめの引数の「開始位置」から2つめの引数の「終了位置」の前にある文字までを返します。
  • 最初の1文字目の位置は0です。
  • スライスと呼ばれます。

開始と終了の位置を指定して文字列の一部を取得するサンプルです。

package main

func main() {
	str1 := "abcde"
	print(str1[0:1]) // a
	print(str1[1:2]) // b
	print(str1[2:3]) // c
	print(str1[0:3]) // abc

	str2 := "あいうえお"
	print(str2[0:3]) // あ
	print(str2[3:6]) // い
	print(str2[6:9]) // う
	print(str2[0:9]) // あいう
}

5~7行目は、指定の位置から1文字取得しています。
8行目は、最初の文字「あ」から3文字取得しています。
10行目は、日本語です。
11行目からは、utf8のため1文字3バイトでの指定です。

文字列の途中から最後までを取得する

文字列[ 開始位置 : ]
  • 1つめの引数の「開始位置」から最後までの文字を返します。
  • 最初の1文字目の位置は0です。
  • 区切りのコロンは残します。

開始の位置を指定して最後まで取得するサンプルです。

package main

func main() {
	str1 := "abcde"
	print(str1[2:]) // cde
	print(str1[3:]) // de
	print(str1[4:]) // e

	str2 := "あいうえお"
	print(str2[6:])  // うえお
	print(str2[9:])  // えお
	print(str2[12:]) // お
}

指定した位置の文字から最後の文字まで取得しています。
日本語は、utf8のため1文字3バイトでの指定です。

終了の位置を指定して最初から取得する

文字列[ : 終了位置 ]
  • 最初の文字から「終了位置」までの文字を返します。
  • 最初の1文字目の位置は0です。
  • 区切りのコロンは残します。

終了の位置を指定して最初から取得するサンプルです。

package main

func main() {
	str1 := "abcde"
	print(str1[:2]) // ab
	print(str1[:3]) // abc
	print(str1[:4]) // abcd

	str2 := "あいうえお"
	print(str2[:6])  // あい
	print(str2[:9])  // あいう
	print(str2[:12]) // あいうえ
}

終了の位置を指定して最初から取得しています。
日本語は、utf8のため1文字3バイトでの指定です。

以下は、Go言語公式のFieldsのリンクです。
https://golang.org/pkg/strings/#Fields

関連の記事

Go言語 文字列の位置を取得する(Index/LastIndex)

△上に戻る