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

Go言語のindex関数とLastIndex関数で、文字列の位置を取得するサンプルです。

目次

文字列 最初の文字列の位置を取得する(index)
  最後の文字列の位置を取得する(LastIndex)

最初の文字列の位置を取得する(index)

func Index(s, substr string) int
  • stringsパッケージをインポートします。
  • 引数の1つめは検索元の文字列です。
  • 引数の2つめは検索する文字列です。
  • 最初の文字列の位置を取得します。位置は0から始まります。
  • 存在しないときは、-1を返します。

Index関数のサンプルです。

package main
import "fmt"
import "strings"

func main(){
	str1 := "abcabc"
	fmt.Println(strings.Index(str1,"a")); // 0が出力される
	fmt.Println(strings.Index(str1,"b")); // 1が出力される
	fmt.Println(strings.Index(str1,"c")); // 2が出力される
	fmt.Println(strings.Index(str1,"abc")); // 0が出力される
	fmt.Println(strings.Index(str1,"z")); // -1が出力される

	str2 := "あいうあいう"
	fmt.Println(strings.Index(str2,"あ"));// 0が出力される
	fmt.Println(strings.Index(str2,"い"));// 3が出力される
	fmt.Println(strings.Index(str2,"う"));// 6が出力される
}

6行目は、変数に文字列を代入しています。
7~10行目は、検索する文字列が最初に見つかった位置を返しています。
11行目は、該当の文字がないので-1が返ります。
13行目は、変数に日本語の文字列を代入しています。
14~16行目は、返り値が3ずつ増加しています。

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

最後の文字列の位置を取得する(LastIndex)

func LastIndex(s, substr string) int
  • stringsパッケージをインポートします。
  • 引数の1つめは検索元の文字列です。
  • 引数の2つめは検索する文字列です。
  • 最後の文字列の位置を取得します。位置は0から始まります。
  • 存在しないときは、-1を返します。

LastIndex関数のサンプルです。

package main
import "fmt"
import "strings"

func main(){
	str1 := "abcabc"
	fmt.Println(strings.LastIndex(str1,"a")); // 3が出力される
	fmt.Println(strings.LastIndex(str1,"b")); // 4が出力される
	fmt.Println(strings.LastIndex(str1,"c")); // 5が出力される
	fmt.Println(strings.LastIndex(str1,"abc")); // 3が出力される
	fmt.Println(strings.LastIndex(str1,"z")); // -1が出力される

	str2 := "あいうあいう"
	fmt.Println(strings.LastIndex(str2,"あ"));// 9が出力される
	fmt.Println(strings.LastIndex(str2,"い"));// 12が出力される
	fmt.Println(strings.LastIndex(str2,"う"));// 15が出力される
}

6行目は、変数に文字列を代入しています。
7~10行目は、検索する文字列が最後に見つかった位置を返しています。
11行目は、該当の文字がないので-1が返ります。
13行目は、変数に日本語の文字列を代入しています。
14~16行目は、返り値が3ずつ増加しています。

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

関連の記事

Go言語 英字の大文字と小文字を変換(ToLower/ToUpper)
Go言語 文字列の始まり/終わりを確認(HasPrefix/HasSuffix)

△上に戻る