可能是件蠢事,但有一段时间被困住了.

无法从字符串中删除"["个字符,这是我try 过的输出:

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

go playground

我也try 了所有这些,但都没有成功:

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

都没用.我错过了什么?

推荐答案

你错过了看doctor 的机会.strings.Trim():

func Trim(s string, cutset string) string

Trim返回字符串s的一个片段,其中删除了cutset中包含的所有leading and trailing个Unicode代码点.

您输入的[个字符既不在leading中,也不在trailing中,而是在middle中,因此strings.Trim()-行为良好-不会将其删除.

改为try strings.Replace():

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

输出(在Go Playground上try ):

thisthings]I would like to remove

GO 1.12中也增加了strings.ReplaceAll()(这基本上是Replace(s, old, new, -1)的"速记").

Go相关问答推荐

带有一个新变量的Go冒号等于运算符

Docker Compose Health Check未退出,错误为无法启动

理解Golang中的IOTA和常量

通过渠道和goroutines增值1000倍

如何在gofiber/websocket/v2中设置状态代码和原因

Go 是否提供了标准或事实上的方法来处理单个语句中的错误(即内联错误处理)?

调用库和直接操作效率有区别吗?

未实现的 desc = 未知服务 pb.AuthService 我的简单身份验证服务器上出现错误

切片的下限和上限

htmx 表单 + gin 无法正确读取请求正文

在golang二进制中嵌入SvelteKit

为什么我只收到部分错误而不是我启动的 goroutines 的所有错误?

Golang 到 wasm 编译使用 tinygo.使用 wasmtime 执行

替换字符串中的最后一个字符

Go泛型:无效的复合文字

致命错误:找不到由 zergon321/reisen 引起的libavcodec/avcodec.h文件

处理程序后访问 HTTP 请求上下文

为什么 0 big.Int 的 .Bytes() 值是空切片?

GoReleaser 和 ssh-agent Github 操作:为什么无法读取用户名...终端提示已禁用?

gqlgen go,通过添加一个解析器来减少数据库调用