Maison > développement back-end > Golang > le corps du texte

Manière idiomatique de parcourir une chaîne et de remplacer les valeurs de la chaîne d'origine par des valeurs mappées

王林
Libérer: 2024-02-10 08:45:08
avant
835 Les gens l'ont consulté

Manière idiomatique de parcourir une chaîne et de remplacer les valeurs de la chaîne dorigine par des valeurs mappées

L'éditeur PHP Xinyi apporte une manière idiomatique de parcourir une chaîne et de remplacer les valeurs de la chaîne d'origine par des valeurs mappées. Cette méthode peut aider les développeurs à simplifier le processus d'exploitation des chaînes et à améliorer l'efficacité du développement. En utilisant un tableau mappé, les développeurs peuvent définir un ensemble de paires clé-valeur, puis utiliser une méthode itérative pour remplacer des valeurs spécifiques dans la chaîne d'origine par des valeurs mappées. Cette méthode est non seulement simple et facile à comprendre, mais peut également être appliquée à divers scénarios, tels que le traitement de données, le remplacement de texte, etc. Les développeurs débutants et expérimentés peuvent bénéficier de cette approche pour gérer les opérations sur les chaînes rapidement et efficacement.

Contenu de la question

J'ai une solution de travail concernant l'itération d'une chaîne et le mappage rune sur une carte

package main

import (
    "fmt"
)

func main() {

    numToString := map[rune]string{
        '0': "zero",
        '1': "one",
        '2': "two",
        '3': "three",
        '4': "four",
        '5': "five",
        '6': "six",
        '7': "seven",
        '8': "eight",
        '9': "nine",
    }

    testStr := "one two 3 four"
    newStr := ""
    for _, char := range testStr {
        if val, ok := numToString[char]; ok {
            newStr += val
            continue
        }
        newStr += string(char)
    }
    // prints one two three four
    fmt.Println(string(newStr))
}
Copier après la connexion

Cela correspond à mes souhaits... mais je suis curieux de trouver une manière plus propre (si possible) plutôt que d'allouer une toute nouvelle chaîne à construire à partir de la chaîne d'origine. Je préférerais faire cela si je pouvais modifier le contenu original sur place lors de l'itération.

Voici le terrain de jeu

Solution de contournement

Utilisez strings.Replacer pour remplacer les chaînes.

var numToString = strings.NewReplacer(
    "0", "zero",
    "1", "one",
    "2", "two",
    "3", "three",
    "4", "four",
    "5", "five",
    "6", "six",
    "7", "seven",
    "8", "eight",
    "9", "nine").Replace

func main() {
    testStr := "one two 3 four"
    newStr := numToString(testStr)
    fmt.Println(newStr)
}
Copier après la connexion

https://www.php.cn/link/7d420e2b2939762031eed0447a9be19f

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!

Étiquettes associées:
source:stackoverflow.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!