strings.TrimRight的这个问题算不算是坑?
皇虫·2016-11-30 16:37:38·494次阅读·发布于 Go问答

今天处理url链接页面的时候,遇到的一个感觉比较坑的问题。。

比如一个url链接:http://www.example.com/album.html

我需要把“.html”这个后缀去掉,然后用下面的第一个方法的时候,居然把“album”中的m也给我去掉了。后来用了第二个办法解决了。

strings.TrimRight(url, ".html")
strings.Trim(strings.TrimRight(url, "html"), ".")

两个代码块看起来处理结果一样,但最后的结果还真不一样,有时候感觉真的挺坑的。一个小小的问题,转不过弯来就能折腾个半天。。

strings.Replace(url,".html","",-1)
这样不是更好!

2022-01-21 12:50:37

谢谢楼上两位gopher。。
我是从PHP转过来的,把go的TrimRight跟php的rtrim划等号了。

2022-01-21 12:50:37

第二个办法一样是错的,好好看文档啊,TrimRight的意思是去掉第二个参数里出现的所有字符。
想去掉后缀,应该用 strings.TrimSuffix。

2022-01-21 12:50:37

func TrimRight(s string, cutset string) string
返回将s后端所有cutset包含的utf-8码值都去掉的字符串。

. html 里面包含一个m,album.html 所以m.html都被去掉了

2022-01-21 12:50:37
发起回帖
未登录,登录后可以回帖