Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
strings.ToUpper() / ToLower() / TrimSpace()
Goの『strings』パッケージには文字列の大文字小文字変換やトリム(前後の文字除去)を行う関数があります。ユーザー入力の正規化やテキスト比較などで頻繁に使います。
構文
import "strings" // 大文字に変換します。 upper := strings.ToUpper(s) // 小文字に変換します。 lower := strings.ToLower(s) // タイトルケースに変換します(各単語の先頭を大文字に)。 title := strings.Title(s) // 非推奨。golang.org/x/text/casesを推奨。 // 前後のホワイトスペースを除去します。 trimmed := strings.TrimSpace(s) // 前後から指定した文字集合を除去します。 trimmed := strings.Trim(s, cutset) // 先頭からのみ除去します。 trimmed := strings.TrimLeft(s, cutset) // 末尾からのみ除去します。 trimmed := strings.TrimRight(s, cutset) // 先頭の部分文字列を除去します(完全一致)。 trimmed := strings.TrimPrefix(s, prefix) // 末尾の部分文字列を除去します(完全一致)。 trimmed := strings.TrimSuffix(s, suffix)
関数一覧
| 関数 | 概要 |
|---|---|
| strings.ToUpper(s) | 文字列sをすべて大文字に変換して返します。 |
| strings.ToLower(s) | 文字列sをすべて小文字に変換して返します。 |
| strings.TrimSpace(s) | 先頭と末尾のホワイトスペース(スペース・タブ・改行等)を除去します。 |
| strings.Trim(s, cutset) | 先頭と末尾からcutsetに含まれる文字をすべて除去します。 |
| strings.TrimLeft(s, cutset) | 先頭からcutsetに含まれる文字を除去します。 |
| strings.TrimRight(s, cutset) | 末尾からcutsetに含まれる文字を除去します。 |
| strings.TrimPrefix(s, prefix) | sの先頭にprefixがあれば除去して返します。 |
| strings.TrimSuffix(s, suffix) | sの末尾にsuffixがあれば除去して返します。 |
| strings.TrimFunc(s, f) | 先頭と末尾から関数fがtrueを返す文字を除去します。 |
| strings.Repeat(s, n) | 文字列sをn回繰り返した文字列を返します。 |
サンプルコード
package main
import (
"fmt"
"strings"
)
func main() {
// ToUpper / ToLower:大文字小文字変換
s := "Hello, Go!"
fmt.Println("ToUpper:", strings.ToUpper(s))
fmt.Println("ToLower:", strings.ToLower(s))
// 大文字小文字を無視した比較
a, b := "Go", "go"
fmt.Println("大小無視比較:", strings.ToLower(a) == strings.ToLower(b))
fmt.Println()
// TrimSpace:前後のスペース・改行を除去します。
padded := " Hello, World! \n"
fmt.Printf("元の文字列: %q\n", padded)
fmt.Printf("TrimSpace後: %q\n", strings.TrimSpace(padded))
fmt.Println()
// Trim:指定した文字集合を前後から除去します。
s2 := "***Go言語***"
fmt.Println("Trim('*'):", strings.Trim(s2, "*"))
s3 := "---Hello---"
fmt.Println("TrimLeft('-'):", strings.TrimLeft(s3, "-"))
fmt.Println("TrimRight('-'):", strings.TrimRight(s3, "-"))
fmt.Println()
// TrimPrefix / TrimSuffix:特定の文字列を前後から除去します。
url := "https://example.com"
fmt.Println("TrimPrefix:", strings.TrimPrefix(url, "https://"))
filename := "document.pdf"
fmt.Println("TrimSuffix:", strings.TrimSuffix(filename, ".pdf"))
fmt.Println()
// Repeat:文字列を繰り返します。
separator := strings.Repeat("=", 20)
fmt.Println(separator)
fmt.Println("Go言語辞典")
fmt.Println(separator)
}
概要
『strings.TrimSpace()』はユーザー入力のサニタイズで最もよく使う関数の一つです。フォームの入力値や設定ファイルの読み込み時に余分なスペースや改行を除去します。『strings.Trim()』のcutsetは文字集合(各文字のセット)であることに注意してください。文字列として除去したい場合は『strings.TrimPrefix()』や『strings.TrimSuffix()』を使います。
strings.Trim(s, cutset)のcutsetは「除去したい文字の集合」です。例えばstrings.Trim("---hello---", "---")は"-"を除去しますが、"---"(3文字の列)を除去するわけではありません。文字列単位で除去するには別のアプローチが必要です。
文字列の検索は『strings.Contains()』、数値との変換は『strconv.Atoi() / Itoa()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。