DDR爱好者之家 Design By 杰米
给定一篇英语文章,要求统计出所有单词的个数,并按一定次序输出。思路是利用go语言的map类型,以每个单词作为关键字存储数量信息,代码实现如下:
package main
import ( "fmt" "sort" ) func wordCounterV1(str string) { /*定义变量*/ stringSlice := str[:] temp := str[:] wordStatistic := make(map[string]int) /*把所有出现的单词放入map中*/ j := 0 for i := 0; i < len(stringSlice); i++ { if !((stringSlice[i] >= 65 && stringSlice[i] <= 90) || (stringSlice[i] >= 97 && stringSlice[i] <= 122)) { temp = str[j:i] if len(temp) != 0 { wordStatistic[temp]++ } j = i + 1 } } /*把首字母为大写的单词转换为小写;去除无效字符*/ for i := range wordStatistic { if len(i) > 1 { if (i[0] >= 65 && i[0] <= 90) && (i[1] <= 65 || i[1] >= 90) { strTemp := make([]byte, len(i), len(i)) copy(strTemp, i) strTemp[0] += 32 wordStatistic[string(strTemp)] += wordStatistic[i] delete(wordStatistic, i) } } else { if i[0] != 'a' && i[0] != 'A' { delete(wordStatistic, i) } else if i[0] == 'A' { wordStatistic["a"] += wordStatistic[i] delete(wordStatistic, i) } } } /*把map的关键字映射到string切片进行排序*/ sortSlice := make([]string, 0, len(wordStatistic)) for i := range wordStatistic { sortSlice = append(sortSlice, i) } sort.Strings(sortSlice) /*输出结果*/ for _, v := range sortSlice { fmt.Printf("%s:%d\n", v, wordStatistic[v]) } fmt.Printf("word count:%d\n", len(wordStatistic)) }
主函数随便输入一篇英语文章
func main() { str := ` There are moments in life when you miss someone so much that you just want to pick them from your dreams and hug them for real! Dream what you want to dream;go where you want to go;be what you want to be,because you have only one life and one chance to do all the things you want to do. May you have enough happiness to make you sweet,enough trials to make you strong,enough sorrow to keep you human,enough hope to make you happy"htmlcode">C:\Users\24213\go project>cd src\github.com\go-study\lesson6\practice1 C:\Users\24213\go project\src\github.com\go-study\lesson6\practice1>go build C:\Users\24213\go project\src\github.com\go-study\lesson6\practice1>practice1 a:4 all:1 along:1 always:2 and:8 another:1 appreciate:2 are:2 around:2 bad:1 based:1 be:3 because:1 begins:1 best:1 born:1 brighten:1 brighter:1 brightest:1 can:2 chance:1 comes:1 cry:1 crying:2 day:1 die:1 do:2 don:3 down:1 dream:2 dreams:1 ends:1 enough:4 everyone:2 everything:2 failures:1 feel:1 for:3 forgotten:1 friendship:1 from:1 future:1 go:4 grows:1 happen:1 happiest:1 happiness:2 happy:1 have:7 heartaches:1 hope:1 hug:1 human:1 hurt:1 hurts:2 if:2 importance:1 in:4 is:2 it:3 just:3 keep:1 kiss:1 know:1 let:2 lies:1 life:5 live:1 lives:1 love:1 make:6 may:1 mean:1 message:2 miss:2 moments:1 most:1 much:1 necessarily:1 need:1 nothing:1 of:6 on:3 one:4 only:2 opportunity:1 or:1 other:1 others:1 out:1 past:2 people:3 person:1 pick:1 please:1 probably:1 put:1 re:1 real:1 really:2 searched:1 see:1 send:1 shoes:1 side:1 smile:2 smiling:2 so:2 someone:2 something:1 sorrow:1 strong:1 sweet:1 tear:1 that:6 the:10 their:3 them:3 there:1 they:2 things:2 this:2 those:9 to:19 too:1 touched:2 trials:1 tried:1 until:1 want:6 was:1 way:2 well:1 were:2 what:2 when:5 where:1 who:10 will:3 with:4 worry:1 you:32 your:4 yourself:1 word count:144总结
以上所述是小编给大家介绍的go语言之给定英语文章统计单词数量(go语言小练习),希望对大家有所帮助!
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
更新日志
2024年12月25日
2024年12月25日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]