修剪字符串的后缀或扩展名?

新手上路,请多包涵

例如,我有一个字符串,由“sample.zip”组成。如何使用字符串包或其他方式删除“.zip”扩展名?

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

阅读 802
2 个回答

编辑:Go 继续前进。请参阅 基思的回答

使用 path/filepath.Ext 获取扩展名。然后,您可以使用扩展名的长度来检索减去扩展名的子字符串。

 var filename = "hello.blah"
var extension = filepath.Ext(filename)
var name = filename[0:len(filename)-len(extension)]

或者,您可以使用 strings.LastIndex 来查找最后一个句点 (.),但这可能会更脆弱一些,因为会有边缘情况(例如没有扩展名) filepath.Ext 处理您可能需要编码对于显式,或者如果 Go 将在使用句点以外的扩展定界符的理论 O/S 上运行。

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

尝试:

 basename := "hello.blah"
name := strings.TrimSuffix(basename, filepath.Ext(basename))

TrimSuffix 基本上告诉它去掉尾随的字符串,它是带点的扩展名。

字符串#TrimSuffix

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

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