【Golang】Join関数で配列内の要素を結合して新しく文字列を作る

stringsパッケージのJoin関数を使う

配列の中にある文字列の要素を全て連結し、新しく1つの文字列を作りたい状況があると思います。

// こんな感じ
["h", "e", "l", "l", "o"] 
↓
"hello"

GolangではstringsパッケージJoin関数を使用することで、それが可能となります。

基本的な書き方は以下の通りです。

sample := strings.Join(配列, "")

Join関数の第1引数に対象となる配列を渡し、第2引数には連結させる時の文字列を渡します。

全ての文字列を区切りなく結合させたい時は、第2引数に空文字で大丈夫です。

具体的なコード例

配列の要素を隙間なく結合する場合

Join関数の第2引数に空文字を渡してあげれば大丈夫です。

package main

import (
  "fmt"
  "strings"
)

func main() {
  letters := []string{"h", "e", "l", "l", "o"}
  newString := strings.Join(letters, "") //第2引数に空文字を渡す

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

出力結果

hello
"hello"

空白文字で結合する場合

Join関数の第2引数に空白文字を渡します。

package main

import (
  "fmt"
  "strings"
)

func main() {
  letters := []string{"This", "is", "a", "pen"}
  newString := strings.Join(letters, " ") // 第2引数を空白文字にする

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

出力結果

This is a pen
"This is a pen"

カンマで結合する場合

Join関数の第2引数に文字列のカンマを渡します。

package main

import (
  "fmt"
  "strings"
)

func main() {
  letters := []string{"Tanaka", "Hashimoto", "Kato", "Suzuki"}
  newString := strings.Join(letters, ",") // 第2引数にカンマを渡す

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

出力結果

Tanaka,Hashimoto,Kato,Suzuki
"Tanaka,Hashimoto,Kato,Suzuki"
タイトルとURLをコピーしました