String 如何以不区分大小写的方式比较Go中的两个字符串值?
如何比较两个不区分大小写的字符串?String 如何以不区分大小写的方式比较Go中的两个字符串值?,string,go,comparison,String,Go,Comparison,如何比较两个不区分大小写的字符串? 例如:“a”==“a”和“a”==“a”必须返回true找到答案。将两个字符串转换为小写或大写,然后进行比较。 导入“字符串” strings.ToUpper(str1)=strings.ToUpper(str2) 有一个函数可以执行不区分大小写的字符串比较 例如: fmt.Println(strings.EqualFold("aa", "Aa")) fmt.Println(strings.EqualFold("aa", "AA")) fmt.Println
例如:
“a”==“a”
和“a”==“a”
必须返回true
找到答案。将两个字符串转换为小写或大写,然后进行比较。
导入“字符串”
strings.ToUpper(str1)=strings.ToUpper(str2)
有一个函数可以执行不区分大小写的字符串比较
例如:
fmt.Println(strings.EqualFold("aa", "Aa"))
fmt.Println(strings.EqualFold("aa", "AA"))
fmt.Println(strings.EqualFold("aa", "Ab"))
输出(在上尝试):
strings.EqualFold()不是compare,有时需要compare符号
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
}
func compareNoCase(i,j字符串)int{
是,js:=[]符文(i),[]符文(j)
il,jl:=len(is),len(js)
ml:=il
如果ml>jl{
ml=jl
}
对于n:=0;njr{
返回1
}
}
如果iljl{
返回1
}
返回0
}
func等式(i,j字符串)布尔{
返回比较案例(i,j)=0
}
将它们都转换成小写,然后进行比较。在6分钟内提出问题然后回答是什么意思?还必须“ß”==“SS”吗?注意可能重复:假设utf-8
。将字符串转换成小写或大写只会给出大致正确的结果-Unicode不是这么简单。研究“土耳其i”问题,作为跳入兔子洞的起点。
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
}