250_尚硅谷_统计不同类型的字符个数
1.文件编程应用案例
2.统计英文、数字、空格和其他字符数量代码
package main
import (
"bufio"
"fmt"
"io"
"os"
)
// 定义一个结构体, 用于保存统计结果
type CharCount struct {
ChCount int // 英文字符数量
NumCount int // 数字字符数量
SpaceCount int // 空格字符数量
OtherCount int // 其他字符数量
}
func main() {
// todo 思路:
// 打开一个文件,创建一个Reader
// 每读一行, 就去统计该行有多少个英文,数字,空格以及其他字符数量
// 然后将结果保存到一个结构体
fileName := "G:/task/go_study/250_尚硅谷_统计不同类型的字符个数/files_folder1/abc.txt"
// 打开文件
file, err := os.Open(fileName)
// 判断文件是否打开成功
if err != nil {
fmt.Println("open file err = ", err)
return
}
// !关闭文件
defer file.Close()
// 定义一个CharCount 实例
var count CharCount
// 创建一个Reader
reader := bufio.NewReader(file)
// 开始循环读取fileName文件中的内容
for {
// 读取一行
str, err := reader.ReadString('\n')
// 遍历 str, 进行统计
for _, v := range str {
// fmt.Println(v)
switch {
case v >= 'a' && v <= 'z':
fallthrough // 穿透,继续执行下一个case
case v >= 'A' && v <= 'Z':
count.ChCount++
case v == ' ' || v == '\t':
count.SpaceCount++
case v >= '0' && v <= '9':
count.NumCount++
default:
count.OtherCount++
}
}
// 判断是否读取到文件末尾
if err == io.EOF {
break
}
}
// 输出统计结果
fmt.Printf("字符总数 = %d, 数字字符 = %d, 空格字符 = %d, 其他字符 = %d\n",
count.ChCount, count.NumCount, count.SpaceCount, count.OtherCount)
}
3.统计英文、数字、空格和其他字符数量运行结果
浙公网安备 33010602011771号