Вы всегда применяете операцию замены к исходной строке strValue
, поэтому после цикла будет удалено только последнее удаляемое слово (которое даже не содержится в вашем примере).Вы должны сохранить результат strings.Replace()
(вы делаете это) и использовать его в следующей итерации:
removalString := strValue
for _, wordToRemove := range stringRemove {
removalString = strings.Replace(removalString, wordToRemove, "", -1)
}
А также использовать это в своей последней замене:
result := strings.Replace(removalString, " ", "", -1)
result1 := strings.ToLower(result)
Тогда вывод будет (попробуйте на Go Playground ):
This is string
thisisstring
Также обратите внимание, что для удаления пробелов вы можете добавить это в список удаляемых слов, и вы неНе нужно всегда создавать новые переменные, вы можете повторно использовать существующие.
Это также выполнит то же преобразование:
s := "This is a string"
words := []string{"a", "an", " "}
for _, word := range words {
s = strings.Replace(s, word, "", -1)
}
s = strings.ToLower(s)
fmt.Println(s)
Попробуйте на Go Playground .