Maison >développement back-end >Golang >Comment supprimer les espaces et les espaces dupliqués des chaînes dans Golang ?

Comment supprimer les espaces et les espaces dupliqués des chaînes dans Golang ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-15 06:01:02733parcourir

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

Suppression des espaces dupliqués et des espaces des chaînes dans Golang

Pour supprimer à la fois les espaces de début/fin et les espaces redondants d'une chaîne dans Golang, vous peut utiliser le package de chaînes.

  1. Suppression Espaces de début/fin :

La fonction strings.TrimSpace() supprime les espaces de début et de fin, y compris les caractères de nouvelle ligne et les caractères nuls.

trimmedString := strings.TrimSpace(originalString)
  1. Suppression des espaces redondants :

Pour supprimer les espaces redondants espaces, vous pouvez utiliser strings.Fields(). Cette fonction divise une chaîne en caractères d'espacement, ce qui donne une tranche de sous-chaînes.

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

Gestion des caractères spatiaux internationaux :

Pour gérer les caractères spatiaux internationaux, vous pouvez utilisez le support Unicode. Le code suivant utilise la fonction unicode.IsSpace() pour vérifier divers caractères d'espacement :

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

Exemple d'utilisation :

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

}

Sortie :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn