统计不同类型的字数个数

mac2022-06-30  23

package main

import ( “os” “fmt” “bufio” “io” )

//顶一个一个结构体,用语保存统计结果 type CharCount struct { ChCount int //记录英文个数 NumCount int //记录数字的个数 SpaceCount int //记录空格的个数 OtherCount int //记录其他字符的个数 }

func main() { /* 思路:打开一个文件,创一个Reader 没读取一行,就去统计该行有多少各英文、数学、空格和其他字符 然后将结果保存到一个结构体 */ fileName := “e:/abc.txt” file, err := os.Open(fileName) if err != nil { fmt.Printf(“open file err=%v\n,err”) return }

defer file.Close() //定义各CharCount实例 var count CharCount //创建一个Reader reader := bufio.NewReader(file) //开始循环的读取fileName的内容 for { str, err := reader.ReadString('\n') if err == io.EOF { //读到文件末尾就退出 break } //为了兼容中文字符,可以将str专程 //str=[]run[](str) //遍历str ,进行统计 for _, v := range str { fmt.Println(v) switch { //switch v取消掉v直接编程分支 case v >= 'a' && v <= 'z': fallthrough //穿透 case v >= 'A' && v <= 'z': count.ChCount++ case v == ' ' || v == '\t': count.SpaceCount++ case v >= '0' && v <= '9': count.NumCount++ default: count.OtherCount++ } } } //输出统计的结果看看是否正确 fmt.Printf("字符的个数为=%v 数字的个数为=%v 空格的个数为=%v 其他字符个数=%v", count.ChCount, count.NumCount, count.SpaceCount, count.OtherCount)

}

最新回复(0)