Go 如何反转字符串中每个字母的大小写?
我从strings软件包中了解到ToUpper和ToLower,但显然他们在这里帮不上忙。是否有内置函数或我必须自己编写一个函数?您需要自己编写一个函数,但构建块已经在标准库中:Go 如何反转字符串中每个字母的大小写?,go,Go,我从strings软件包中了解到ToUpper和ToLower,但显然他们在这里帮不上忙。是否有内置函数或我必须自己编写一个函数?您需要自己编写一个函数,但构建块已经在标准库中: func swapCase(s string) string { return strings.Map(func(r rune) rune { switch { case unicode.IsLower(r): return unicode.ToUpper
func swapCase(s string) string {
return strings.Map(func(r rune) rune {
switch {
case unicode.IsLower(r):
return unicode.ToUpper(r)
case unicode.IsUpper(r):
return unicode.ToLower(r)
}
return r
}, s)
}
您需要自己编写一个,但构建块已经在标准库中:
func swapCase(s string) string {
return strings.Map(func(r rune) rune {
switch {
case unicode.IsLower(r):
return unicode.ToUpper(r)
case unicode.IsUpper(r):
return unicode.ToLower(r)
}
return r
}, s)
}
你肯定得自己写一本。这很简单,基本的想法是;获取ASCII值,如果是大写减去26,如果是小写,则添加相同的值。当然,除非您有非ASCII字符。您应该期望能够处理的:ППСіі,Сіі!那是行不通的,你一定要自己写一本。这很简单,基本的想法是;获取ASCII值,如果是大写减去26,如果是小写,则添加相同的值。当然,除非您有非ASCII字符。您应该期望能够处理的:ППСіі,Сіі!这样不行该死的@JimB,你在追我,住手!很好,优雅的解决方案。看起来真的很优雅!非常感谢。不过,我得花点时间才能清醒过来。该死的@JimB,你追上我了,住手!很好,优雅的解决方案。看起来真的很优雅!非常感谢。不过,这需要我花一些时间来思考。