strings.Contains() returns 始终为假
strings.Contains() returns always false
在Go中,我想检查以下字符串是否包含字符串中的text/plain
。函数 strings.Contains() returns 总是 false
.
我本地的go版本是go1.14.3windows/amd64,我的服务器版本是go1.13.3linux/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
那么为什么 returns strings.Contains()
总是 'false'?
根据the docs:
func Contains(s, substr string) bool
Contains reports whether substr is within s.
第一个参数s
是原始字符串,第二个参数substr
是您要搜索的子字符串。你的情况正好相反。
例如strings.Contains("charset", test)
,应该是strings.Contains(test, "charset")
在Go中,我想检查以下字符串是否包含字符串中的text/plain
。函数 strings.Contains() returns 总是 false
.
我本地的go版本是go1.14.3windows/amd64,我的服务器版本是go1.13.3linux/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
那么为什么 returns strings.Contains()
总是 'false'?
根据the docs:
func Contains(s, substr string) bool
Contains reports whether substr is within s.
第一个参数s
是原始字符串,第二个参数substr
是您要搜索的子字符串。你的情况正好相反。
例如strings.Contains("charset", test)
,应该是strings.Contains(test, "charset")