首页 > 编程语言 > 详细

go语言圣经 map 章节习题

时间:2020-04-26 22:04:43      阅读:83      评论:0      收藏:0      [点我收藏+]

github地址
笔记

4,8

练习 4.8: 修改charcount程序,使用unicode.IsLetter等相关的函数,统计字母、数字等Unicode中不同的字符类别。

令人惊讶的是 汉字也算是letter

func charCount(s string)  {
	var letterCount,numberCount,otherCount int
	// 输入
	//将 s 作为 输入
	in := bufio.NewReader(strings.NewReader(s))
	for  {
		// 以 rune 为单位读取
		r, n, err := in.ReadRune()

		if err == io.EOF {
			break
		}
		if err != nil {
			fmt.Fprintf(os.Stderr, "charcount: %v\n", err)
			os.Exit(1)
		}
		// 无效码点
		if r == unicode.ReplacementChar && n == 1 {
			//invalid++
			continue
		}
		if unicode.IsNumber(r) {
			numberCount++
			fmt.Printf("%v is number\n",r)
		}else if unicode.IsLetter(r){
			letterCount++
			fmt.Printf("%v is letter\n",r)
		}else {
			otherCount++
		}

	}
	fmt.Printf("letter: %v,\t number,%v\t other: %v",letterCount,numberCount,otherCount)
}

4.9

package ex4_9

import (
"fmt"
)

/*
编写一个程序wordfreq程序,报告输入文本中每个单词出现的频率。
在第一次调用Scan前先调用input.Split(bufio.ScanWords)函数,这样可以按单词而不是按行输入。
*/

func wordFreq(words []string) {
count := make(map[string]int)
for _,word :=range words{
count[word] +=1
}
for k,v := range count {
fmt.Printf("%v \t %v \n",k,v)
}
}

go语言圣经 map 章节习题

原文:https://www.cnblogs.com/Jun10ng/p/12782021.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!