いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-513 (連続する空白文字を1つとして扱ってSplitしたい)(strings.Fields)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。使いたいときに、よく存在を忘れているのでここにメモメモ。。。

たまに、以下のように複数の空白文字で区切られたデータをSplitしたいときがあります。

hello   world こんにちは   世界

これを

[hello,world,こんにちは,世界]

ってしたい場合です。

このような場合は strings.Split() よりも strings.Fields() を利用する方が楽です。

strings.Fields() の方は、連続する空白文字を1つのスペースとして扱ってくれます。

空白文字として認識する判定は、unicode.IsSpace() にて true を返してくれるものです。

サンプル

main.go

package strs

import (
    "strings"

    "github.com/devlights/gomy/output"
)

// SplitFields は、strings.Fields() のサンプルです.
//
// 空白で分割したい場合は、strings.Split() を利用するより
// strings.Fields() を利用したほうが楽。
//
// # REFERENCES
//   - https://pkg.go.dev/strings@go1.23.0#Fields
func SplitFields() error {
    var (
        s = "hello world こんにちは     世界"
        p = strings.Fields(s)
    )

    for _, v := range p {
        output.Stdoutl("[value]", v)
    }

    return nil
}

実行

$ task
task: [build] go build -o "/workspace/try-golang/try-golang" .
task: [run] ./try-golang -onetime

ENTER EXAMPLE NAME: string_split_fields

[Name] "string_split_fields"
[value]              hello
[value]              world
[value]              こんにちは
[value]              世界


[Elapsed] 55.55µs

参考情報

pkg.go.dev

pkg.go.dev

Goのおすすめ書籍


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。