一敌土、知識(shí)點(diǎn)镜硕,
1、用rune將string統(tǒng)一成int32編碼返干,go默認(rèn)是utf-8,所以默認(rèn)情況下中文字符是占3個(gè)字節(jié)
2兴枯、index,value := range 數(shù)組矩欠,可以遍歷得到角標(biāo)和對(duì)應(yīng)的字符
3财剖、獲取控制臺(tái)輸入的一行字符串悠夯,用到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庞瘸、圖片及運(yùn)行結(jié)果