Golang:strings.Contains()始终返回false

问题描述 投票:-1回答:1

[在Golang中,我想检查以下字符串是否在字符串中包含text/plain。函数strings.Contains()始终返回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()为'false'?

string go compare contains
1个回答
0
投票

根据the docs

func包含(s,substr字符串)bool

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

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

例如,代替strings.Contains("charset", test),应该为strings.Contains(test, "charset")

© www.soinside.com 2019 - 2024. All rights reserved.