Подтвердить что ты не робот

Как обрезать "[" char из строки в Golang

Вероятно, глупая вещь, но застрял на нем немного...

Не могу обрезать символ "[" из строки, что я пробовал с выводами:

package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "this[things]I would like to remove"
    t := strings.Trim(s, "[")

    fmt.Printf("%s\n", t)   
}

// output: this[things]I would like to remove

пойти на площадку

Также попробовал все те, но безуспешно:

s := "this [ things]I would like to remove"
t := strings.Trim(s, " [ ")
// output: this [ things]I would like to remove


s := "this [ things]I would like to remove"
t := strings.Trim(s, "[")
// output: this [ things]I would like to remove

Никто не работал. Что мне здесь не хватает?

4b9b3361

Ответ 1

Вы скучаете по чтению документа. strings.Trim():

func Trim(s string, cutset string) string

Обрезка возвращает кусок строки с со всеми передними и задними точками Unicode кодов, содержащихся в cutset удален.

Символ [ в вашем вводе не находится ни в передней, ни в задней позиции, он в середине, поэтому strings.Trim() - хорошее поведение - не удалит его.

Вместо этого попробуйте strings.Replace():

s := "this[things]I would like to remove"
t := strings.Replace(s, "[", "", -1)
fmt.Printf("%s\n", t)   

Вывод (попробуйте на Go Playground):

thisthings]I would like to remove

Там также есть strings.ReplaceAll() добавленный в Go 1.12 (который по сути является "сокращением" для Replace(s, old, new, -1)).