如何在 Golang 中删除字符串的最后一个字符?

新手上路,请多包涵

我想删除字符串的最后一个字符,但在此之前我想检查最后一个字符是否为“+”。如何才能做到这一点?

原文由 Micheal Perr 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.8k
2 个回答

以下是删除尾随加号的几种方法。

 package main

import (
    "fmt"
    "strings"
)

func TrimSuffix(s, suffix string) string {
    if strings.HasSuffix(s, suffix) {
        s = s[:len(s)-len(suffix)]
    }
    return s
}

func main() {
    s := "a string ++"
    fmt.Println("s: ", s)

    // Trim one trailing '+'.
    s1 := s
    if last := len(s1) - 1; last >= 0 && s1[last] == '+' {
        s1 = s1[:last]
    }
    fmt.Println("s1:", s1)

    // Trim all trailing '+'.
    s2 := s
    s2 = strings.TrimRight(s2, "+")
    fmt.Println("s2:", s2)

    // Trim suffix "+".
    s3 := s
    s3 = TrimSuffix(s3, "+")
    fmt.Println("s3:", s3)
}

输出:

 s:  a string ++
s1: a string +
s2: a string
s3: a string +

原文由 peterSO 发布,翻译遵循 CC BY-SA 3.0 许可协议

根据@KarthikGR 的评论,添加了以下示例:

https://play.golang.org/p/ekDeT02ZXoq

 package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.TrimSuffix("Foo++", "+"))
}

回报:

 Foo+

原文由 030 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题