LoginSignup
4

More than 1 year has passed since last update.

「Golangのstringsパッケージ:これだけは知っておきたいメソッド17選」

Posted at

Contains

文字列検索

strings.Contains(s, substr string) bool: このメソッドは、与えられた部分文字列 'substr' が文字列 's' に含まれているかどうかをチェックするために使用されます。部分文字列が見つかった場合は、trueを返します。そうでない場合は、falseを返します。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "hello world"
    var substr = "world"
    var result = strings.Contains(str, substr)
    fmt.Println(result) // true
}

Index

文字列検索

strings.Index(s, substr string) int: このメソッドは、文字列 's' の最初の出現箇所の開始インデックスを検索するために使用されます。部分文字列が見つからない場合は、-1を返します。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "hello world"
    var substr = "world"
    var result = strings.Index(str, substr)
    fmt.Println(result) // 6
}

ToLower

小文字変換

strings.ToLower(s string) string: このメソッドは、文字列 's' のすべての文字を小文字に変換するために使用されます。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "HeLLo WoRLd"
    var result = strings.ToLower(str)
    fmt.Println(result) // "hello world"
}

ToUpper

大文字変換

strings.ToUpper(s string) string: このメソッドは、文字列 's' のすべての文字を大文字に変換するために使用されます。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "HeLLo WoRLd"
    var result = strings.ToUpper(str)
    fmt.Println(result) // "HELLO WORLD"
}

Split

文字列分割

strings.Split(s, sep string) []string: このメソッドは、区切り文字 'sep' を使用して文字列 's' をサブ文字列に分割し、文字列のスライスを返します。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "apple,banana,orange"
    var sep = ","
    var result = strings.Split(str, sep)
    fmt.Println(result) // ["apple", "banana", "orange"]
}

SplitAfter

文字列分割

strings.SplitAfter(s, sep string) []string: このメソッドは、区切り文字 'sep' を使用して文字列 's' をサブ文字列に分割し、文字列のスライスを返します。ただし、このメソッドは、区切り文字をサブ文字列の末尾に含める点で Split メソッドと異なります。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "apple,banana,orange"
    var sep = ","
    var result = strings.SplitAfter(str, sep)
    fmt.Println(result) // ["apple,", "banana,", "orange"]
}

SplitN

文字列分割

strings.SplitN(s, sep string, n int) []string: このメソッドは、区切り文字 'sep' を使用して文字列 's' をサブ文字列に分割しますが、 'n' を指定することで、分割する最大回数を指定できます。指定した分割回数に達した場合、残りの部分文字列は区切り文字を含んで返されます。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "apple,banana,orange,peach,mango"
    var sep = ","
    var n = 3
    var result = strings.SplitN(str, sep, n)
    fmt.Println(result) // ["apple", "banana", "orange,peach,mango"]
}

SplitAfterN

文字列分割

strings.SplitAfterN(s, sep string, n int) []string: このメソッドは、区切り文字 'sep' を使用して文字列 's' をサブ文字列に分割しますが、 'n' を指定することで、分割する最大回数を指定できます。指定した分割回数に達した場合、残りの部分文字列は区切り文字を含んで返されます。なお、このメソッドは、区切り文字をサブ文字列の末尾に含める点で Split メソッドと異なります。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "apple,banana,orange,peach,mango"
    var sep = ","
    var n = 3
    var result = strings.SplitAfterN(str, sep, n)
    fmt.Println(result) // ["apple,", "banana,", "orange,peach,mango"]
}

Join

文字列結合

strings.Join(a []string, sep string) string: このメソッドは、文字列のスライス 'a' の要素を区切り文字 'sep' で連結し、単一の文字列にします。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var arr = []string{"apple", "banana", "orange"}
    var sep = ","
    var result = strings.Join(arr, sep)
    fmt.Println(result) // "apple,banana,orange"
}

Replace

文字列の置換

strings.Replace(s, old, new string, n int) string: このメソッドは、文字列 's' 中の部分文字列 'old' の最初の 'n' 個の出現箇所を新しい部分文字列 'new' で置き換えます。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "hello world world world"
    var oldStr = "world"
    var newStr = "golang"
    var n = 2
		// n=-1にすると全て置換する
    var result = strings.Replace(str, oldStr, newStr, n)
    fmt.Println(result) // "hello golang golang world"
}

HasPrefix

接頭辞検索

strings.HasPrefix(s, prefix string) bool: このメソッドは、文字列 's' が指定された接頭辞 'prefix' で始まるかどうかをチェックするために使用されます。接頭辞が見つかった場合は、trueを返します。そうでない場合は、falseを返します。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "hello world"
    var prefix = "hello"
    var result = strings.HasPrefix(str, prefix)
    fmt.Println(result) // true
}

HasSuffix

接尾辞検索

strings.HasSuffix(s, suffix string) bool: このメソッドは、文字列 's' が指定された接尾辞 'suffix' で終わるかどうかをチェックするために使用されます。接尾辞が見つかった場合は、trueを返します。そうでない場合は、falseを返します。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "hello world"
    var suffix = "world"
    var result = strings.HasSuffix(str, suffix)
    fmt.Println(result) // true
}

TrimSpace

文字列の前後トリム

strings.TrimSpace(s string) string: このメソッドは、文字列 's' の先頭と末尾の空白文字をすべて削除するために使用されます。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "   hello world   "
    var result = strings.TrimSpace(str)
    fmt.Println(result) // "hello world"
}

TrimLeft

文字列の先頭トリム

strings.TrimLeft(s string, cutset string) string: このメソッドは、文字列 's' の先頭にある 'cutset' に含まれる文字をすべて削除します。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "###hello world###"
    var cutset = "#"
    var result = strings.TrimLeft(str, cutset)
    fmt.Println(result) // "hello world###"
}

TrimRight

文字列の末尾トリム

strings.TrimRight(s string, cutset string) string: このメソッドは、文字列 's' の末尾にある 'cutset' に含まれる文字をすべて削除します。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "###hello world###"
    var cutset = "#"
    var result = strings.TrimRight(str, cutset)
    fmt.Println(result) // "###hello world"
}

Repeat

文字列の繰り返し

strings.Repeat(s string, count int) string: このメソッドは、文字列 's' を 'count' 回繰り返すために使用されます。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "Hello"
    var count = 3
    var result = strings.Repeat(str, count)
    fmt.Println(result) // "HelloHelloHello"
}

Fields

文字列分割

strings.Fields(s string) []string: このメソッドは、文字列 's' を空白文字で分割し、部分文字列のスライスを返します。

package main

import (
    "fmt"
    "strings"
)

func main() {
    var str = "apple banana orange"
    var result = strings.Fields(str)
    fmt.Println(result) // ["apple", "banana", "orange"]
}

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4