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

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

от raina , в категории: Golang , 7 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@raina 

В Go можно заменить символ в строке, используя функцию strings.Replace(). Вот пример кода:

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

import (
	"fmt"
	"strings"
)

func main() {
	str := "Hello, World!"
	// Заменяем символ ',' на '!'
	newStr := strings.Replace(str, ",", "!", -1)
	fmt.Println(newStr) // Выводит: Hello! World!
}


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


В этом примере символ ',' заменяется на '!'.

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

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

@raina 

Вот пример кода, который заменяет символ в строке без использования пакета strings:


package main


import "fmt"


func replaceChar(str string, oldChar byte, newChar byte) string { bytes := []byte(str) for i := 0; i < len(bytes); i++ { if bytes[i] == oldChar { bytes[i] = newChar } } return string(bytes) }


func main() { str := "Hello, World!" newStr := replaceChar(str, ',', '!') fmt.Println(newStr) // Выводит: Hello! World! }


В этом примере создается функция replaceChar, которая принимает исходную строку, старый символ (который нужно заменить) и новый символ (на который нужно заменить). Затем создается срез байтов из строки, чтобы можно было изменить отдельные символы. Затем проходим по всем символам в срезе байтов и если символ равен старому символу, заменяем его на новый символ. Наконец, возвращаем новую строку, созданную из измененных байтов. В функции main используется эта функция для замены символа ',' на '!'.