美文网首页
go包:unicode rune字符操作

go包:unicode rune字符操作

作者: 呦丶耍脾气 | 来源:发表于2023-03-29 13:37 被阅读0次

    1.介绍

    unicode包提供了诸多处理rune字符相关功能的函数(比如区分字母和数字,或者是字母的大写和小写转换等)

    2.判断函数

    2.1 是否为空格(IsSpace)

    func TestJudge(t *testing.T) {
        rune1 := ' '
        rune2 := 'h'
        fmt.Printf("[%c] 是空格? %t\n",rune1,unicode.IsSpace(rune1))
      // 输出 [ ] 是空格? true
        fmt.Printf("[%c] 是空格? %t\n",rune2,unicode.IsSpace(rune2))
      // 输出 [h] 是空格? false
    }
    

    2.2 是否为十进制数(IsDigit)

    d1 := '1'
    d2 := 'w'
    fmt.Printf("[%c] 是十进制数? %t\n",d1,unicode.IsDigit(d1))
    // 输出: [1] 是十进制数? true
    fmt.Printf("[%c] 是十进制数? %t\n",d2,unicode.IsDigit(d2))
    // 输出: [w] 是十进制数? false
    

    2.3 是否为数字(IsNumber)

    d1 := '1'
    d2 := 'w'
    fmt.Printf("[%c] 是数字? %t\n",d1,unicode.IsNumber(d1))
    // 输出: [1] 是数字? true
    fmt.Printf("[%c] 是数字? %t\n",d2,unicode.IsNumber(d2))
    // 输出: [w] 是数字? false
    

    2.4 是否为字母字符(IsLetter)

    // 是否为字母字符
    str1 := '刘'
    str2 := 'l'
    str3 := 'W'
    str4 := '!'
    fmt.Printf("[%c] 是字母? %t\n",str1,unicode.IsLetter(str1))
    // [刘] 是字母? true
    fmt.Printf("[%c] 是字母? %t\n",str2,unicode.IsLetter(str2))
    // [l] 是字母? true
    fmt.Printf("[%c] 是字母? %t\n",str3,unicode.IsLetter(str3))
    // [W] 是字母? true
    fmt.Printf("[%c] 是字母? %t\n",str4,unicode.IsLetter(str4))
    // [!] 是字母? false
    

    @注意: 汉字也是一个字母字符

    2.5 是否为标点符号(IsPunct)

    str1 := '刘'
    str2 := 'l'
    str3 := '!'
    fmt.Printf("[%c] 是标点符号? %t\n",str1,unicode.IsPunct(str1))
    // [刘] 是标点符号? false
    fmt.Printf("[%c] 是标点符号? %t\n",str2,unicode.IsPunct(str2))
    // [l] 是标点符号? false
    fmt.Printf("[%c] 是标点符号? %t\n",str3,unicode.IsPunct(str3))
    // [!] 是标点符号? true
    

    2.6 是否为小写字母(IsLower)

    str1 := '刘'
    str2 := 'l'
    str3 := 'W'
    str4 := '!'
    fmt.Printf("[%c] 是小写字母? %t\n", str1, unicode.IsLower(str1))
    // [刘] 是小写字母? false
    fmt.Printf("[%c] 是小写字母? %t\n", str2, unicode.IsLower(str2))
    // [l] 是小写字母? true
    fmt.Printf("[%c] 是小写字母? %t\n", str3, unicode.IsLower(str3))
    // [W] 是小写字母? false
    fmt.Printf("[%c] 是小写字母? %t\n", str4, unicode.IsLower(str4))
    // [!] 是小写字母? false
    

    2.7 是否为大写字母(IsUpper)

    str1 := '刘'
    str2 := 'l'
    str3 := 'W'
    str4 := '!'
    fmt.Printf("[%c] 是大写字母? %t\n", str1, unicode.IsUpper(str1))
    // [刘] 是大写字母? false
    fmt.Printf("[%c] 是大写字母? %t\n", str2, unicode.IsUpper(str2))
    // [l] 是大写字母? false
    fmt.Printf("[%c] 是大写字母? %t\n", str3, unicode.IsUpper(str3))
    // [W] 是大写字母? true
    fmt.Printf("[%c] 是大写字母? %t\n", str4, unicode.IsUpper(str4))
    // [!] 是大写字母? false
    

    2.8 是否为汉字

    str1 := '刘'
    str2 := 'l'
    str3 := '!'
    fmt.Printf("[%c] 是汉字? %t\n", str1, unicode.Is(unicode.Scripts["Han"], str1))
    // [刘] 是汉字? true
    fmt.Printf("[%c] 是汉字? %t\n", str2, unicode.Is(unicode.Scripts["Han"], str2))
    // [l] 是汉字? false
    fmt.Printf("[%c] 是汉字? %t\n", str3, unicode.Is(unicode.Scripts["Han"], str3))
    // [!] 是汉字? false
    

    3. 转换函数

    3.1 转成小写(ToLower)

    str1 := 'W'
    fmt.Printf("[%c] 转成小写: %c \n", str1, unicode.ToLower(str1))
    // [W] 转成小写: w 
    

    3.2 转成大写(ToUpper)

    str2 := 'a'
    fmt.Printf("[%c] 转成大写: %c \n", str2, unicode.ToUpper(str2))
    // [a] 转成大写: A
    

    相关文章

      网友评论

          本文标题:go包:unicode rune字符操作

          本文链接:https://www.haomeiwen.com/subject/malgrdtx.html