文件读写的字符统计
统计大小写字符、空格、数字、其他
package main
import(
"bufio"
"fmt"
"os"
)
type CharCount struct{
ChCount int
NumCount int
SpaceCount int
OtherCount int
}
func main(){
file, err := os.Open("C:/test.log")
if err != nil {
fmt.Println("read file err:", err)
return
}
defer file.Close()
var count CharCount
reader := bufio.NewReader(file)
fot{
str, err := reader.ReadString('\n')
if err == io.EOF {
break
}
if err != nil{
fmt.Println("read file failed, err:%v", err)
break
}
runeArr := []rune(str) //强转为数组
for _, v := range runeArr{
switch{
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("char count:%d\n", count.ChCount)
fmt.Printf("num count:%d\n", count.NumCount)
fmt.Printf("space count:%d\n", count.SpaceCount)
fmt.Printf("other count:%d\n", count.OtherCount)
}