在Go语言中进行不区分大小写的字符串比较

58

如何以不区分大小写的方式比较字符串?

例如,"Go" 和 "go" 应该被视为相等。

2个回答

113

https://golang.org/pkg/strings/#EqualFold 是您要查找的函数。它的使用方式如下(来自链接文档的示例):

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.EqualFold("Go", "go"))
}

EqualFold 不是比较 :( - lunicon
4
排序可以使用 strings.ToLower("Go") < strings.ToLower("go")。这会将字符串转换为小写字母,并进行比较大小。 - lunicon
EqualFold不进行比较。 - KBN
1
@KBN,比较操作可以说“更多、更少或相等”,EqualFold返回布尔值。 - lunicon

1

有一个替代 strings.EqualFold 的方法,那就是 bytes.EqualFold,它的工作方式相同。

package main

import (
    "bytes"
    "fmt"
)

func main() {
    fmt.Println(bytes.EqualFold([]byte("Go"), []byte("go")))
}

https://golang.org/pkg/bytes/#EqualFold


2
请将代码粘贴为代码,而不是图像。 - Vitaly Zdanevich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接