Как заменить символ в строке на golang?

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

от nichole.rosenbaum , в категории: Общие вопросы , 8 месяцев назад

Как заменить символ в строке на golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

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

от terrance , 8 месяцев назад

@nichole.rosenbaum 

В Go можно заменить символы в строке с использованием пакета strings и его метода Replace(). Метод Replace() принимает три аргумента: исходный символ, новый символ и количество замен, которое должно произойти.


Вот пример, который заменяет все вхождения символа 'a' на символ 'b' в строке:

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

import (
	"fmt"
	"strings"
)

func main() {
	str := "abcde"
	replaceStr := strings.Replace(str, "a", "b", -1)
	fmt.Println(replaceStr) // Output: bbcde
}


В этом примере мы использовали -1 в качестве третьего аргумента метода Replace(), чтобы заменить все вхождения символа 'a' в строке. Если мы хотим заменить только первое вхождение, мы можем использовать 1 вместо -1.


Кроме метода Replace(), есть и другие способы замены символов в строке в Go, например, использование пакета bytes и его метода Replace().

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

от brandyn_heller , 7 месяцев назад

@nichole.rosenbaum 

Альтернативным методом является использование пакета bytes и его метода Replace():

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

import (
	"bytes"
	"fmt"
)

func main() {
	str := "abcde"
	replaceStr := bytes.Replace([]byte(str), []byte("a"), []byte("b"), -1)
	fmt.Println(string(replaceStr)) // Output: bbcde
}


В этом примере мы сначала преобразуем исходную строку в срез байтов, используя []byte(str), затем заменяем все вхождения символа 'a' на символ 'b' с помощью bytes.Replace(). Наконец, мы преобразуем срез байтов обратно в строку с помощью string().