【Go】文字列のトリミングあれこれ

Categories:Go

文字列を扱っていて、ある部分文字列(”!”など)をトリミング(切り取り)したいときに使える関数を紹介します。

strings.Trim: 位置に関係なく対象文字列をトリミング

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Print(strings.Trim("!!!Hello, World???", "!?")) // Hello, World
}

strings.TrimLeft/TrimRight: 文字列の左側/右側をトリミング

package main

import (
	"fmt"
	"strings"
)

func main() {
  fmt.Print(strings.TrimLeft("!!!Hello, World???", "!?")) // Hello, World???
  fmt.Print(strings.TrimLeft("???Hello, World!!!", "!?")) // Hello, World!!!

  fmt.Print(strings.TrimRight("!!!Hello, World???", "!?")) // !!!Hello, World
  fmt.Print(strings.TrimRight("???Hello, World!!!", "!?")) // ???Hello, World
}

strings.TrimPrefix/TrimSuffix: プレフィックス/サフィックスをトリミング

TrimLeft/TrimRightとの違いが少しややこしいですが、例えば以下のような挙動の違いがあります。(コードのアイデアはこちらよりいただきました)

package main

import (
	"fmt"
	"strings"
)

func main() {
  fmt.Println(strings.TrimLeft("abc-back", "abc-"))   // k
  fmt.Println(strings.TrimPrefix("abc-back", "abc-")) // back 
}

strings.TrimSpace: ホワイトスペースをトリミング

package main

import (
	"fmt"
	"strings"
)

func main() {
	fmt.Print(strings.TrimSpace("       Hello, World")) // Hello, World
}

参考リンク・書籍

おまけ

Twitterでもエンジニアリング・キャリア形成に役立つ記事をシェアしてます。良かったらフォローお願いします!

返信がありません

コメントを残す

メールアドレスが公開されることはありません。