go - 从 strings.Replace() Golang 倒置返回

标签 go

我有一个大型数据集,我需要在其中进行一些字符串操作(我知道字符串是不可变的)。 strings 包中的 Replace() 函数完全满足我的需要,只是我需要它进行反向搜索。

假设我有这个字符串:AA-BB-CC-DD-EE

运行这个脚本:

package main

import (
"fmt"
"strings"
)

func main() {
    fmt.Println(strings.Replace("AA-BB-CC-DD-EE", "-", "", 1))
}

它输出:AABB-CC-DD-EE

我需要的是:AA-BBCCDDEE,其中找到搜索键的第一个实例,其余的被丢弃。

拆分字符串,插入破折号,然后将其重新连接在一起。但是,我认为有一种更高效的方法可以实现这一目标。

最佳答案

字符串 slice !

in := "AA-BB-CC-DD-EE"
afterDash := strings.Index(in, "-") + 1
fmt.Println(in[:afterDash] + strings.Replace(in[afterDash:], "-", "", -1))

(在输入没有破折号的情况下,可能需要进行一些调整以获得您想要的行为)。

关于go - 从 strings.Replace() Golang 倒置返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33310172/

相关文章:

go - 注册成员(member)请求因签名验证失败

android - 如何使用 gomobile 将多个包绑定(bind)到单个 Java AAR 文件中?

go - 我可以使用c:= range <string>遍历一个字符串,但仅使用字符而不使用索引吗?

concurrency - Go lang关闭管道死锁

go - 如何在 gRPC 调用中直接传递原始二进制文件?

unit-testing - 如何使用golang实现单元测试程序?

go - 权限被拒绝使用 API key 从 GAE 使用 Go 访问 Bigquery

go - 从非缓冲 channel 读取

go - 如何修复 Golang 中单值上下文错误的多值?

mysql - 使用 Gorm 和 MySQL 处理空间数据