我有一根a_b_c_d_e的线.我想把它分成a_bc_d_e.什么是做这件事的好方法?

目前,我知道如何使用SplitN函数根据第一个下划线拆分字符串:

strings.SplitN(str, "_", 2)

如果字符串为a_b_c_d_e,则输出将为ab_c_d_e.

推荐答案

据我所知,你想要的东西并不存在.所以你只需要做你自己的:

package hello

func split(s string, sep rune, n int) (string, string) {
   for i, sep2 := range s {
      if sep2 == sep {
         n--
         if n == 0 {
            return s[:i], s[i+1:]
         }
      }
   }
   return s, ""
}

Go相关问答推荐

如何复制*C.char?

golang 的条件储存库

GORM没有从 struct 创建完整的表,如何修复?

按键值排序字符串- Golang

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

我可以扫描表中每个项目的最高范围键值吗?

如何将任何类型的数据值传递到 Golang 中的 GRPC Protobuf struct ?

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

Golang crypto/rand 线程安全吗?

如何将 npm 安装进度条通过管道传输到终端?

在恒等函数中将类型 T 转换为类型 U

具有未导出字段的 struct 类型之间的转换

为什么此代码在运行命令 error="exec: not started" 时出现错误?

每次有人进入我的网站时如何运行特定功能?

try 运行 docker-compose up -d 时出现错误

将未知长度切片的值分配给Go中的 struct ?

如何使用golang操作很长的字符串以避免内存不足

如何使路径/不匹配 Golang net/http 中所有其他不匹配的路径

如何从 docker-compose 命令运行 2 个不同的命令:

从 map 返回空数组而不是空字符串数组