for 中range遍历

一、知识点,

1、用rune将string统一成int32编码,go默认是utf-8,所以默认情况下中文字符是占3个字节

2、index,value := range 数组,可以遍历得到角标和对应的字符

3、获取控制台输入的一行字符串,用到os和bufio包


二、代码,

、、、

package main

import (

    "bufio"

    "fmt"

    "os"

)

func count(str string) (letterCount, spaceCount, numberCount, otherCount int) {

    t := []rune(str)

    for _, v := range t {

        switch {

        case (v >= 'a' && v <= 'z') || (v >= 'A' && v <= 'Z'):

            letterCount++

        case v == ' ':

            spaceCount++

        case v >= '0' && v <= '9':

            numberCount++

        default:

            otherCount++

        }

    }

    return

}

func main() {

    reader := bufio.NewReader(os.Stdin)

    result, _, err := reader.ReadLine()

    if err != nil {

        fmt.Println("read from console err:", err)

        return

    }

    letterCount, spaceCount, numberCount, otherCount := count(string(result))

    fmt.Printf("letterCount=%d\nspaceCount=%d\numberCount=%d\notherCount=%d\n", letterCount, spaceCount, numberCount, otherCount)

}

、、、

3、图片及运行结果


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 01.{ 换行: Opening Brace Can't Be Placed on a Separate Lin...
    码农不器阅读 2,436评论 0 14
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 14,026评论 0 38
  • fmt格式化字符串 格式:%[旗标][宽度][.精度][arg索引]动词旗标有以下几种:+: 对于数值类型总是输出...
    皮皮v阅读 1,148评论 0 3
  • /* gotips_test.go: Golang速学速查速用代码手册 Source: github.com/c...
    中v中阅读 305评论 0 0
  • Profile HFP
    lion21cn阅读 407评论 0 0