如何比较两个不区分大小写的字符串?
例如:"a" == "a"
和"a" == "A"
都必须返回true
。
答案 0 :(得分:14)
有strings.EqualFold()
函数执行不区分大小写的字符串比较。
例如:
fmt.Println(strings.EqualFold("aa", "Aa"))
fmt.Println(strings.EqualFold("aa", "AA"))
fmt.Println(strings.EqualFold("aa", "Ab"))
输出(在Go Playground上尝试):
true
true
false
答案 1 :(得分:0)
找到答案。将两个字符串转换为小写或大写并进行比较。
import "strings"
strings.ToUpper(str1) == strings.ToUpper(str2)
答案 2 :(得分:-2)
strings.EqualFold()不进行比较,有时您需要比较的迹象
func compareNoCase(i, j string) int {
is, js := []rune(i), []rune(j)
il, jl := len(is), len(js)
ml := il
if ml > jl {
ml = jl
}
for n := 0; n < ml; n++ {
ir, jr := unicode.ToLower(is[n]), unicode.ToLower(js[n])
if ir < jr {
return -1
} else if ir > jr {
return 1
}
}
if il < jl {
return -1
}
if il > jl {
return 1
}
return 0
}
func equalsNoCase(i, j string) bool {
return compareNoCase(i, j) == 0
}