どうも、ちょげ(@chogetarou)です。
文字列(string)を区切り文字で分割した配列に変換する方法を紹介します。
方法

文字列(string)を区切り文字で分割した配列に変換する方法は、3つあります。
Split()
ひとつめは、Split()を使う方法です。
まず、stringsをインポートします。
import "strings"
次に、stringsからSplit()を呼び出します。
そして、Split()の第1引数に対象の文字列、第2引数に区切り文字を指定します。
//text=対象の文字列, sep=区切り文字
result := strings.Split(text, sep)
上記のSplit()は、引数に指定した文字列(string)を第2引数の区切り文字で分割した配列に変換します。
使用例
package main
import (
"fmt"
"strings"
)
func main() {
text := "He-l-lo,W-or-ld"
result := strings.Split(text, "-")
fmt.Printf("分割した配列: %q", result)
}
出力:
分割した配列: ["He" "l" "lo,W" "or" "ld"]
SplitAfter()
ふたつめは、SplitAfter()を使う方法です。
まず、stringsをインポートします。
import "strings"
次に、stringsからSplit()を呼び出します。
そして、Split()の第1引数に対象の文字列、第2引数に区切り文字を指定します。
//text=対象の文字列, sep=区切り文字
result := strings.Split(text, sep)
上記のSplit()は、引数に指定した文字列(string)を第2引数の区切り文字で分割した配列に変換します。
使用例
package main
import (
"fmt"
"strings"
)
func main() {
text := "He-l-lo,W-or-ld"
result := strings.Split(text, "-")
fmt.Printf("分割した配列: %q", result)
}
出力:
分割した配列: ["He" "l" "lo,W" "or" "ld"]
FieldsFunc()
みっつめは、FieldsFunc()を使う方法です。
まず、stringsをインポートします。
import "strings"
次に、stringsからSplit()を呼び出します。
そして、Split()の第1引数に対象の文字列、第2引数に1つの引数を持つ関数を指定します。
関数で、引数が区切り文字の場合に「true」となる条件式を返します。
//text=対象の文字列, condition=条件式
result := strings.FieldsFunc(text, func(x rune) bool {
return condition
})
上記のFieldsFunc()は、第1引数に指定した文字列(string)を、関数で「true」を返した区切り文字で分割した配列に変換します。
使用例
package main
import (
"fmt"
"strings"
"unicode"
)
func main() {
text := "He l lo, W or ld"
//空白で分割
result := strings.FieldsFunc(text, func(x rune) bool {
return unicode.IsSpace(x) //空白の場合にtrue
})
fmt.Printf("分割した配列: %q", result)
}
出力:
分割した配列: ["He" "l" "lo," "W" "or" "ld"]
まとめ
文字列(string)を区切り文字で分割した配列に変換する方法は、次の3つです。
- Split()を使う方法
result := strings.Split(text, sep)
- Split()を使う方法
result := strings.Split(text, sep)
- FieldsFunc()()を使う方法
result := strings.FieldsFunc(text, func(x rune) bool { return condition })
コメント