Maison  >  Article  >  développement back-end  >  Manière idiomatique de parcourir une chaîne et de remplacer les valeurs de la chaîne d'origine par des valeurs mappées

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

王林
王林avant
2024-02-10 08:45:08822parcourir

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

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer