字符串.包含() 返回始终为假



在Go中,我想检查以下字符串是否包含字符串中的text/plain。函数字符串。包含 (( 返回始终false

我的本地go版本是go1.14.3 windows/amd64,我的服务器版本是go1.13.3 linux/amd64

测试代码 (play.golang.org/p/_ikCzWd6438(

var test = "text/plain; charset=utf-8"
fmt.Println("my string:", test)
fmt.Println("strings.Contains(text/plain)", strings.Contains("text/plain", test))
fmt.Println("strings.Contains(text)", strings.Contains("text", test))
fmt.Println("strings.Contains(charset)", strings.Contains("charset", test))
var test2 = strings.ReplaceAll(test, "/", "") // remove slash
fmt.Println("my second string:", test2)
fmt.Println("strings.Contains(textplain)", strings.Contains("textplain", test2))
fmt.Println("strings.Contains(text)", strings.Contains("text", test2))
fmt.Println("strings.Contains(charset)", strings.Contains("charset", test2))

输出

my string: text/plain; charset=utf-8
strings.Contains(text/plain) false
strings.Contains(text) false
strings.Contains(charset) false
my second string: textplain; charset=utf-8
strings.Contains(textplain) false
strings.Contains(text) false
strings.Contains(charset) false

那么,为什么返回总是strings.Contains()"假"呢?

根据文档:

func 包含(s, substr string( bool

包含 substr 是否在 s 内的报告。

第一个参数s是原始字符串,第二个参数substr是搜索的子字符串。在您的情况下,情况正好相反。

例如,它应该是strings.Contains(test, "charset")而不是strings.Contains("charset", test)

相关内容

  • 没有找到相关文章

最新更新