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年05月06日
2024年05月06日
- 吴俊宏.2014-爱着你【豪记】【WAV+CUE】
- 名洋.1990-分手摆在胸口【天下唱片】【WAV+CUE】
- 罗大佑.2018-当年离家的年轻人巡回演唱会【大右音乐】【WAV+CUE】
- 姜育恒.1991-金曲精丫永声】【WAV+CUE】
- 水木年华.2010-启程【英皇星艺】【WAV+CUE】
- 邓丽君《漫步人生路》[DSF][1.3G]
- 林俊杰《学不会》[DSF][1.3G]
- 费玉清《Ultimate Sound》SACD 限量版[DSF][2G]
- 杨耀东.2002-经典金曲珍藏版2CD【东尼机构】【WAV+CUE】
- 新民樂演奏《春来人不来上海管弦楽團伴奏》[WAV+CUE].
- 玛吉阿米藏族民间歌舞艺术团-《仓央嘉措之歌》[ADMS][WAV+CUE]
- 王心凌《爱你》[FLAC][836M]
- 叶少菲《纯爱沉思录》[320K/MP3][120.43MB]
- 叶少菲《纯爱沉思录》[FLAC/分轨][330.3MB]
- 电子琴《汽车音响精品第三集第四集第五集》特效360度[WAV+CUE]