How to replace characters in a string based on a mapping in Golang?

To replace characters in a string based on a mapping in Golang, you can use the strings.Map function along with a mapping function. Here's an example:

package main import ( "fmt" "strings" ) func main() { originalString := "Hello, World!" mapping := map[string]string{ "H": "X", "e": "Y", "o": "Z", } // Define the mapping function mapFunc := func(r rune) rune { char := string(r) if val, ok := mapping[char]; ok { return []rune(val)[0] } return r } // Replace characters based on the mapping newString := strings.Map(mapFunc, originalString) fmt.Println(newString) // Output: XYYZZ, WZrld! }

In this example, we have an original string "Hello, World!" and a mapping that defines what characters should be replaced with. The mapping is defined as a map where the keys are the characters to be replaced and the values are their replacements.

We then define a mapping function mapFunc that takes a rune (which represents a Unicode code point) and returns a rune. Inside the function, we check if the character exists in the mapping. If it does, we replace it with the corresponding value from the mapping, otherwise, we leave it unchanged.

Finally, we use the strings.Map function to apply the mapping function to each character in the original string and obtain the new string with the replacements.