php小編新一帶來了一種迭代字符串并用映射值替換原始字符串中的值的慣用方法。這種方法可以幫助開發者簡化字符串操作的過程,提高開發效率。通過使用映射數組,開發者可以定義一組鍵值對,然后使用迭代方法將原始字符串中的特定值替換為映射值。這種方法不僅簡單易懂,而且可以應用于各種場景,例如數據處理、文本替換等。無論是初學者還是經驗豐富的開發者都可以從這種方法中受益,快速高效地處理字符串操作。
問題內容
我有一個關于迭代字符串并將 rune 映射到映射的工作解決方案
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))
}
登錄后復制
這符合我的愿望……但是我很好奇一種更干凈的方式(如果可能的話),而不是分配一個全新的字符串來基于原始字符串進行構建。如果我可以在迭代時就地修改原始內容,我會更愿意這樣做。
這里是游樂場
解決方法
使用 strings.Replacer 替換字符串。
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






