Golang, Go, как убрать пробелы? На личном примере
Помогите пожалуйста, как убрать лишние пробелы в строке в golang. Я пытаюсь записать строку в массив, при этом не могу поставить условие что, если после слова идёт более одного пробела не добавлять их, т.е. чтобы после каждого слова записался лишь один пробел, а если их более двух то пусть останется один, делал как, if i != ' ' {} но так убирается лишь первый, а как убрать остальные за ним не знаю.
for _, i := range s {
if i != ' ' {
r += string(i)
}
if i == ' ' {
array = append(array, r)
r = ""
}
}
"Hello world" -> "Hello", "world"
нужно чтобы вот так стало
а в массив записывается как "Hello","","","","", "world"
тут скорее всего вопрос в том как убрать лишние пробелы чтобы в массив не записались пустые строки?
Ответы (1 шт):
У вас уже почти всё есть. После добавления слова вы его обнуляете. Достаточно не добавлять r когда оно пустое.
for _, i := range s {
if i != ' ' {
r += string(i)
}
if i == ' ' {
// Не добавляем пустые слова
if r != "" {
array = append(array, r)
r = ""
}
}
}
// Добавляем последнее слово
if r != "" {
array = append(array, r)
}
Тестовый пример " Hello world !" -> Hello,world,!