go言語 文字列の一部のデータを取得する

go言語 文字列の一部のデータを取得する

go言語で、スライスを使用して、文字列の一部のデータを取得するサンプルコードを記述してます。go言語のバージョンは1.15.4を使用してます。

環境

  • OS windows10 pro 64bit
  • go言語 1.15.4

スライス使い方

スライスを使用すると、文字列の一部のデータを取得することが可能です。

文字列[開始位置:終了位置]

※開始位置は0から

以下は、スライスを使って、アルファベットの文字列の一部のデータを取得するサンプルコードとなります。

package main

import (
	"fmt"
)

func main() {

	str := "ABCDE"

	fmt.Println(str[0:1])
	// A

	fmt.Println(str[0:2])
	// AB

	fmt.Println(str[1:2])
	// B

	fmt.Println(str[2:5])
	// CDE

	fmt.Println(str[1:])
	// BCDE

	fmt.Println(str[:5])
	// ABCDE

	fmt.Println(str[:])
	// ABCDE

}

終了位置が文字列の長さを超えるとエラーとなります。

fmt.Println(str[2:10])
// panic: runtime error: slice bounds out of range [:10] with length 5

日本語は、1文字3バイト扱いとなるため、位置も3倍する必要があります。

package main

import (
	"fmt"
)

func main() {

	str := "あいうえお"

	fmt.Println(str[0:3])
	// あ

	fmt.Println(str[0:6])
	// あい

	fmt.Println(str[3:6])
	// い

	fmt.Println(str[3:15])
	// いうえお

	fmt.Println(str[3:])
	// いうえお

	fmt.Println(str[:15])
	// あいうえお

	fmt.Println(str[:])
	// あいうえお

}