ホームページ > バックエンド開発 > Golang > Golangの文字列から重複したスペースと空白を削除するにはどうすればよいですか?

Golangの文字列から重複したスペースと空白を削除するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-15 06:01:02
オリジナル
730 人が閲覧しました

How to Remove Duplicated Spaces and Whitespace from Strings in Golang?

Golang の文字列から重複したスペースと空白を削除する

Golang で文字列から先頭/末尾の空白と冗長なスペースの両方を削除するには、次のようにします。

  1. 先頭/末尾の空白の削除:

strings.TrimSpace() 関数は、先頭と末尾の空白を削除します。改行文字と null 文字。

trimmedString := strings.TrimSpace(originalString)
ログイン後にコピー
  1. 冗長スペースの削除:

冗長スペースを削除するには、strings.Fields を使用できます。 ()。この関数は文字列を空白文字で分割し、部分文字列のスライスを生成します。

formattedString := strings.Join(strings.Fields(originalString), " ")
ログイン後にコピー

インターナショナル スペース文字の処理:

インターナショナル スペース文字を処理するには、次のことができます。ユニコードサポートを使用します。次のコードは、unicode.IsSpace() 関数を使用してさまざまな空白文字をチェックします。

func standardizeSpacesUnicode(s string) string {
    var buffer bytes.Buffer
    for _, r := range s {
        if unicode.IsSpace(r) {
            if buffer.Len() == 0 || buffer.Bytes()[buffer.Len()-1] != ' ' {
                buffer.WriteRune(r)
            }
        } else {
            buffer.WriteRune(r)
        }
    }
    return buffer.String()
}
ログイン後にコピー

使用例:

package main

import (
    "fmt"
    "strings"
)

func main() {
    tests := []string{
        " Hello,   World  ! ",
        " Hello,\tWorld ! ",
        " \t\n\t Hello,\tWorld\n!\n\t",
        "你好,世界!", // Unicode test
    }

    for _, test := range tests {
        trimmed := strings.TrimSpace(test)
        formatted := strings.Join(strings.Fields(test), " ")
        standardizedUnicode := standardizeSpacesUnicode(test)

        fmt.Println("Original:", test)
        fmt.Println("Trimmed:", trimmed)
        fmt.Println("Formatted:", formatted)
        fmt.Println("Standardized Unicode:", standardizedUnicode)
        fmt.Println()
    }

}
ログイン後にコピー

出力:

Original:  Hello,   World  !
Trimmed:  Hello, World !
Formatted:  Hello World !
Standardized Unicode: Hello World !

Original:  Hello,\tWorld !
Trimmed:  Hello, World !
Formatted:  Hello World !
Standardized Unicode: Hello World !

Original:   \t\n\t Hello,\tWorld\n!\n\t
Trimmed:  Hello, World!
Formatted:  Hello World!
Standardized Unicode: Hello World!

Original:  你好,世界!
Trimmed:  你好,世界!
Formatted:  你好 世界!
Standardized Unicode: 你好 世界!
ログイン後にコピー

以上がGolangの文字列から重複したスペースと空白を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート