登录
首页 >  Golang >  Go问答

检查字符串在 Go 中是大写字母还是小写字母

来源:stackoverflow

时间:2024-03-13 11:09:25 328浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《检查字符串在 Go 中是大写字母还是小写字母》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

golang 中检查字符串中所有字符是大写还是小写的简单方法是什么?

另外,如何处理字符串有标点符号的情况?

查看这些示例:

package main

import (
    "fmt"
    "unicode"
)

func main() {
    s := "UPPERCASE"
    fmt.Println(s.IsUpper())  // Should print true

    s = "lowercase"
    fmt.Println(s.IsUpper())  // Should print false

    s = "lowercase"
    fmt.Println(s.IsLower())  // Should print true

    s = "I'M YELLING AT YOU!"
    fmt.Println(s.IsUpper())  // Should print true
}

注意:s.isupper() 和 s.islower() 并不真正存在,但如果能找到等价的就很好了。


解决方案


您当然可以完整地比较大小写字符串,也可以在第一次失败时短路比较,这在比较长字符串时会更有效。

func isupper(s string) bool {
    for _, r := range s {
        if !unicode.isupper(r) && unicode.isletter(r) {
            return false
        }
    }
    return true
}

func islower(s string) bool {
    for _, r := range s {
        if !unicode.islower(r) && unicode.isletter(r) {
            return false
        }
    }
    return true
}

一种解决方案是使用 strings.toupper()/tolower() 并与原始字符串进行比较。这也适用于标点符号的情况。

解决方案如下:

package main

import (
    "fmt"
    "strings"
)

func main() {
    s := "UPPERCASE"
    fmt.Println(strings.ToUpper(s) == s)

    s = "lowercase"
    fmt.Println(strings.ToUpper(s) == s)

    s = "lowercase"
    fmt.Println(strings.ToLower(s) == s)

    s = "I'M YELLING AT YOU!"
    fmt.Println(strings.ToUpper(s) == s)
}

到这里,我们也就讲完了《检查字符串在 Go 中是大写字母还是小写字母》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>