文檔字符統計
尚硅谷Golang課

文檔字符統計

//保存結果用
type CharCount struct {
	ChCount    int //英文字數
	NumCount   int //
	SpaceCount int
	OtherCount int
}

func main() {
	//思路 打開一個文件 創一個reader每讀取一行就去統計,將結果保存到一個結構體
	fileName := "c:/abc.txt"
	file, err := os.Open(fileName)
	if err != nil {
		fmt.Println(err)
		return
	}
	defer file.Close()
	//來個實例
	var count CharCount
	reader := bufio.NewReader(file)

	//開始讀取
	for {
		str, err := reader.ReadString('\n')
		//這存在BUG 當行不換行做結尾就統計不到
		if err == io.EOF {
			break
		}
		for _, v := range str {
			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("字符=%v 數字=%v 空格=%v 其他=%v",
		count.ChCount, count.NumCount, count.SpaceCount, count.OtherCount)

}

上次修改於 2021-08-01

此篇文章的評論功能已經停用。