[Golang]文字列(string)をスペースで分割した配列に変換するには?

Go

どうも、ちょげ(@chogetarou)です。

文字列(string)をスペース(空白)で分割した配列に変換する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

文字列(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, " ")

コメント

タイトルとURLをコピーしました