Heim >Backend-Entwicklung >Golang >Wie entferne ich doppelte Leerzeichen und Leerzeichen aus Zeichenfolgen in Golang?

Wie entferne ich doppelte Leerzeichen und Leerzeichen aus Zeichenfolgen in Golang?

Barbara Streisand
Barbara StreisandOriginal
2024-11-15 06:01:02718Durchsuche

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

Duplizierte Leerzeichen und Leerzeichen aus Zeichenfolgen in Golang entfernen

So entfernen Sie sowohl führende/nachgestellte Leerzeichen als auch redundante Leerzeichen aus einer Zeichenfolge in Golang kann das Strings-Paket nutzen.

  1. Entfernen Führende/nachgestellte Leerzeichen:

Die Funktion strings.TrimSpace() entfernt führende und nachgestellte Leerzeichen, einschließlich Zeilenumbrüche und Nullzeichen.

trimmedString := strings.TrimSpace(originalString)
  1. Redundante Leerzeichen entfernen:

Um redundante Leerzeichen zu entfernen, Sie können strings.Fields() verwenden. Diese Funktion teilt eine Zeichenfolge in Leerzeichen auf, was zu einem Teil von Teilzeichenfolgen führt.

formattedString := strings.Join(strings.Fields(originalString), " ")

Umgang mit internationalen Leerzeichen:

Um mit internationalen Leerzeichen umzugehen, können Sie Folgendes tun Verwenden Sie die Unicode-Unterstützung. Der folgende Code verwendet die Funktion unicode.IsSpace(), um nach verschiedenen Leerzeichen zu suchen:

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()
}

Beispielverwendung:

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()
    }

}

Ausgabe:

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: 你好 世界!

Das obige ist der detaillierte Inhalt vonWie entferne ich doppelte Leerzeichen und Leerzeichen aus Zeichenfolgen in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn