Heim  >  Artikel  >  Backend-Entwicklung  >  Idiomatische Möglichkeit, eine Zeichenfolge zu durchlaufen und Werte in der ursprünglichen Zeichenfolge durch zugeordnete Werte zu ersetzen

Idiomatische Möglichkeit, eine Zeichenfolge zu durchlaufen und Werte in der ursprünglichen Zeichenfolge durch zugeordnete Werte zu ersetzen

王林
王林nach vorne
2024-02-10 08:45:08822Durchsuche

Idiomatische Möglichkeit, eine Zeichenfolge zu durchlaufen und Werte in der ursprünglichen Zeichenfolge durch zugeordnete Werte zu ersetzen

Der PHP-Editor Xinyi bietet eine idiomatische Möglichkeit, über einen String zu iterieren und die Werte im Originalstring durch zugeordnete Werte zu ersetzen. Diese Methode kann Entwicklern helfen, den String-Betriebsprozess zu vereinfachen und die Entwicklungseffizienz zu verbessern. Durch die Verwendung eines zugeordneten Arrays können Entwickler eine Reihe von Schlüssel-Wert-Paaren definieren und dann eine iterative Methode verwenden, um bestimmte Werte in der ursprünglichen Zeichenfolge durch zugeordnete Werte zu ersetzen. Diese Methode ist nicht nur einfach und leicht zu verstehen, sondern kann auch auf verschiedene Szenarien wie Datenverarbeitung, Textersetzung usw. angewendet werden. Sowohl Anfänger als auch erfahrene Entwickler können von diesem Ansatz profitieren, um String-Operationen schnell und effizient abzuwickeln.

Frageninhalt

Ich habe eine funktionierende Lösung zum Iterieren eines Strings und zum Zuordnen rune zu einer Karte

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

Das entspricht meinen Wünschen ... aber ich bin neugierig auf einen saubereren Weg (wenn möglich), anstatt einen ganz neuen String zuzuweisen, der aus dem ursprünglichen String erstellt werden soll. Wenn ich den ursprünglichen Inhalt während der Iteration direkt ändern könnte, würde ich dies lieber tun.

Hier ist der Spielplatz

Workaround

Verwenden Sie strings.Replacer, um Zeichenfolgen zu ersetzen.

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

Das obige ist der detaillierte Inhalt vonIdiomatische Möglichkeit, eine Zeichenfolge zu durchlaufen und Werte in der ursprünglichen Zeichenfolge durch zugeordnete Werte zu ersetzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen