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