美文网首页
Go语言基础练习一

Go语言基础练习一

作者: 羋学僧 | 来源:发表于2021-11-30 16:39 被阅读0次

    一、字符统计

    1、判读字符串汉字的数量

    package main
    
    import (
        "fmt"
        "unicode"
    )
    
    func main() {
        //判断字符串中汉字的数量
        //难点是判读一个字符是汉字
        s1 := "hello上海"
        // 1.依次拿到字符串中的字符
        var count int
        for _, c := range s1 {
            //2.判断当前这个字符是不是汉字
            if unicode.Is(unicode.Han, c){
                count++
            }
        }
        //3.把汉字出现的次数累加得到最终结果
        fmt.Println(count)
    
    }
    

    2、how do you do 单词出现的次数

    package main
    
    import (
        "fmt"
        "strings"
    )
    
    func main() {
        // how do you do 单词出现的次数
        s2 := "how do you do"
        //1.把字符串按照空格切割得到切片
        s3 := strings.Split(s2," ")
        //2.遍历切片存储到一个map
        m1 := make(map[string]int,10)
        for _, w := range s3 {
            //2.1如果原来map中不存在w这个key,那么出现次数=1
            if _,ok := m1[w] ; !ok {
                m1[w] = 1   
            } else {
                m1[w]++
            }
            //2.2如果map中存在w这个key,那么出现次数+1
        }
        //3.累加出现次数
        for key,value := range m1 {
            fmt.Println(key,value)
        }
    }
    

    二、回文判断

    字符串从左往右和从右向左读是一样的,那么就是回文
    上海自来水来自海上

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        ss := "山西运煤车煤运西山"
        // 解题思路:
        // 把字符串中的字符拿出来放到一个[]rune中
        r := make([]rune ,0,len(ss))
        for _, c := range ss {
            r = append(r, c)
        }
        fmt.Println("[]rune:",r)
        for i := 0; i < len(r)/2; i++ {
            // c r[i] r[len(r)-1-i]
            if r[i] != r[len(r)-1-i]{
                fmt.Println("不是回文")
                return
            }
        }
        fmt.Println("是回文")
    }
    

    相关文章

      网友评论

          本文标题:Go语言基础练习一

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