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

Barbara Streisand
Freigeben: 2024-11-15 06:01:02
Original
671 Leute haben es durchsucht

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 verwenden.

  1. Entfernen von führenden/nachgestellten Leerzeichen:

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

trimmedString := strings.TrimSpace(originalString)
Nach dem Login kopieren
  1. Redundante Leerzeichen entfernen:

Um redundante Leerzeichen zu entfernen, können Sie 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), " ")
Nach dem Login kopieren

Umgang mit internationalen Leerzeichen:

Um mit internationalen Leerzeichen umzugehen, können Sie Folgendes tun Verwenden Sie 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()
}
Nach dem Login kopieren

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

}
Nach dem Login kopieren

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: 你好 世界!
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage