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

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