我想删除字符串的最后一个字符,但在此之前我想检查最后一个字符是否为“+”。怎么办呢?
答案 0 :(得分:53)
答案 1 :(得分:37)
以下是删除尾随加号的几种方法。
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 +
答案 2 :(得分:11)
没有内置的方式。但手动操作是微不足道的。
s := "mystring+"
sz := len(s)
if sz > 0 && s[sz-1] == '+' {
s = s[:sz-1]
}
答案 3 :(得分:0)
根据@KarthikGR的答案,添加了以下示例:
https://play.golang.org/p/ekDeT02ZXoq
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.TrimSuffix("Foo++", "+"))
}
返回:
Foo+