【Golang】Split関数を使って文字列を分解して配列に変換する

stringsパッケージのSplit関数

ある文字列を1文字ずつバラバラにして新しく配列を作る時、stringパッケージのSplit関数を使用することで可能となります。

基本的な使い方はこの通り。

array := strings.Split(対象の文字列, "")

Split関数の第1引数に分割したい文字列を、第2引数にはバラバラにする時に基準となる文字列を入れます。

特定の文字列を基準とせず、全てバラバラに分割したい時、第2引数は空文字を入れればOKです。

具体的なコード例

文字列を1文字ずつ分割する場合

package main

import (
	"fmt"
	"strings"
)

func main() {
  string := "hello"
  letters := strings.Split(string, "")

  fmt.Println(letters)
  fmt.Printf("%#v\n", letters)
}

出力結果

[h e l l o]
[]string{"h", "e", "l", "l", "o"}

空白文字を基準に分割する場合

package main

import (
	"fmt"
	"strings"
)

func main() {
  string := "hello world good morning"
  letters := strings.Split(string, " ")

  fmt.Println(letters)
  fmt.Printf("%#v\n", letters)
}

実行結果

[hello world good morning]
letters[%#v] -> []string{"hello", "world", "good", "morning"}

改行文字で文字列を分割する場合

package main

import (
	"fmt"
	"strings"
)

func main() {
  string := "This\nis\na\npen"
  letters := strings.Split(string, "\n")

  fmt.Println(letters)
  fmt.Printf("%#v\n", letters)
}

実行結果

[This is a pen]
[]string{"This", "is", "a", "pen"}

カンマで文字列を分割する場合

package main

import (
	"fmt"
	"strings"
)

func main() {
  string := "This,is,a,pen"
  letters := strings.Split(string, ",")

  fmt.Println(letters)
  fmt.Printf("%#v\n", letters)
}

実行結果

[This is a pen]
[]string{"This", "is", "a", "pen"}
タイトルとURLをコピーしました