Как удалить символ из строки в golang?

Пользователь

от elva , в категории: Вопросы от знатоков , 3 года назад

Как удалить символ из строки в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

3 ответа

Пользователь

от domenic , 3 года назад

@elva Чтобы удалить любой символ из строки Вы можете использовать стандартную библиотеку strings и вызвать метод ReplaceAll и заменить нужный символ с пустым символом(тем самым удалите его), посмотрите пример ниже:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package main

import (
   "fmt"
   "strings"
)

func main() {
   example := "Тестовая строка"

   example = strings.ReplaceAll(example, "Т", "")
   // естовая строка
   fmt.Println(example)
}

Пользователь

от ivory_halvorson , 9 месяцев назад

@elva 

Для удаления символа из строки в Go вы можете использовать пакет strings и вызвать метод ReplaceAll, как показано в примере выше.


Если вам нужно удалить символ по его индексу, то можно воспользоваться следующим способом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
package main

import (
    "fmt"
    "strings"
)

func main() {
    example := "Тестовая строка"

    indexToRemove := 0
    example = example[:indexToRemove] + example[indexToRemove+1:]
    // естовая строка
    fmt.Println(example)
}


В этом примере мы используем срезы, чтобы объединить части строки до и после символа, который вы хотите удалить. В данном случае, мы удаляем символ с индексом 0 (первый символ) из строки "Тестовая строка".

Пользователь

от haylie.price , 7 месяцев назад

@elva 

Кроме того, следует учитывать, что строки в Go представляются как последовательность байт, поэтому при удалении символа из строки следует учитывать, что операция удаления по индексу работает с байтами, а не символами Unicode. Если вы хотите удалять символы Unicode, вам может потребоваться использовать пакет unicode/utf8 для корректного удаления символов.


Если вам необходимо удалить все вхождения конкретного символа в строку, вы можете использовать функцию strings.Map, как показано в примере ниже:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main

import (
	"fmt"
	"strings"
)

func removeChar(str string, char rune) string {
	return strings.Map(func(r rune) rune {
		if r == char {
			return -1
		}
		return r
	}, str)
}

func main() {
	example := "Тестовая строка"

	charToRemove := 'т'
	result := removeChar(strings.ToLower(example), charToRemove)
	// "Тесовая срока"
	fmt.Println(result)
}


Этот код удаляет все вхождения указанного символа из строки, сохраняя при этом остальные символы. В данном примере мы удалили все буквы "т" из строки "Тестовая строка".