亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go 中如何檢查字符串是全大寫還是小寫?

Go 中如何檢查字符串是全大寫還是小寫?

Go
弒天下 2023-08-14 14:44:04
Golang 中檢查字符串中所有字符是大寫還是小寫的簡單方法是什么?另外,如何處理字符串有標點符號的情況?請參閱這些示例:package mainimport (    "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() 并不真正存在,但如果能找到等價的就很好了。
查看完整描述

4 回答

?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

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() 并不真正存在,但如果能找到等價的就很好了。


查看完整回答
反對 回復 2023-08-14
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

一種解決方案是使用 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)

}


查看完整回答
反對 回復 2023-08-14
?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

不需要unicode(僅適用于英文字母):


func IsUpper(s string) bool {

    for _, charNumber := range s {

        if charNumber > 90 || charNumber < 65 {

            return false

        }

    }

    return true

}

    

func IsLower(s string) bool {

    for _, charNumber := range s {

        if charNumber > 122 || charNumber < 97 {

            return false

        }

    }

    return true

}


查看完整回答
反對 回復 2023-08-14
?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

A?unicode.{IsUpper, Lower}和 B?strings.{ToUpper, Lower}都很好

  • 對于單個字節組成的數據,A會比B更好

  • 如果數據字節不確定,則 B 優于 A:例如中文a1

package main


import (

? ? "strings"

? ? "testing"

? ? "unicode"

)


func IsUpperU(s string) bool {

? ? for _, r := range s {

? ? ? ? if !unicode.IsUpper(r) && unicode.IsLetter(r) {

? ? ? ? ? ? return false

? ? ? ? }

? ? }

? ? return true

}


func IsUpper(s string) bool {

? ? return strings.ToUpper(s) == s

}


func IsLowerU(s string) bool {

? ? for _, r := range s {

? ? ? ? if !unicode.IsLower(r) && unicode.IsLetter(r) {

? ? ? ? ? ? return false

? ? ? ? }

? ? }

? ? return true

}


func IsLower(s string) bool {

? ? return strings.ToLower(s) == s

}


func TestIsUpper(t *testing.T) {

? ? for _, d := range []struct {

? ? ? ? actual? ?bool

? ? ? ? expected bool

? ? }{

? ? ? ? {IsUpperU("中文A1"), false}, // be careful!

? ? ? ? {IsUpper("中文A1"), true},


? ? ? ? {IsUpper("中文a1"), false},

? ? ? ? {IsUpperU("中文a1"), false},

? ? } {

? ? ? ? if d.actual != d.expected {

? ? ? ? ? ? t.Fatal()

? ? ? ? }

? ? }

}


func TestIsLower(t *testing.T) {

? ? for idx, d := range []struct {

? ? ? ? actual? ?bool

? ? ? ? expected bool

? ? }{

? ? ? ? {IsLowerU("中文a1"), false}, // be careful!

? ? ? ? {IsLower("中文a1"), true},


? ? ? ? {IsLower("中文A1"), false},

? ? ? ? {IsLowerU("中文A1"), false},

? ? } {

? ? ? ? if d.actual != d.expected {

? ? ? ? ? ? t.Fatal(idx)

? ? ? ? }

? ? }

}

go playground


查看完整回答
反對 回復 2023-08-14
  • 4 回答
  • 0 關注
  • 379 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號