strings.Contains()总是返回false [关闭]。

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

在Go中,我想检查下面的字符串是否含有 text/plain 的字符串中。函数 strings. Contains() 总是返回 false.

我的本地围棋版本是 go1.14.3 windowsamd64,我的服务器版本是 go1.13.3 linuxamd64

测试代码 (play.golang.orgp_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
投票

根据 文献:

func Contains(s, substr string) bool

包含报告substr是否在s内。

第一个参数 s 是原来的字符串和第二个。substr,是你搜索的子串。在你的例子中,它是相反的。

例如,我们用 strings.Contains("charset", test),应该是 strings.Contains(test, "charset")

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