最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Go語言實現(xiàn)統(tǒng)計字符串中每個字符出現(xiàn)的次數(shù)

 更新時間:2025年07月15日 08:52:55   作者:程序員愛釣魚  
這篇文章主要為大家詳細(xì)介紹了如何使用Go語言開發(fā)一個簡易頻率分析器,實現(xiàn)統(tǒng)計字符串中每個字符出現(xiàn)的次數(shù),感興趣的小伙伴可以了解一下

一、 案例目標(biāo)

本案例將實現(xiàn)一個程序,接收用戶輸入的一段文字,并統(tǒng)計其中每個字符(包括中文、英文、數(shù)字等)出現(xiàn)的次數(shù),并按字符輸出。

例如輸入:

Hello, 世界!

輸出:

H: 1
e: 1
l: 2
o: 1
,: 1
 : 1
世: 1
界: 1
!: 1

二、 應(yīng)用場景舉例

  • 文本分析、關(guān)鍵詞提取
  • 字符頻率統(tǒng)計(用于密碼分析、數(shù)據(jù)挖掘)
  • 字符畫處理(字符權(quán)重)
  • AI、自然語言處理基礎(chǔ)任務(wù)之一

三、 涉及知識點講解

知識點說明
map[rune]intGo 中用于統(tǒng)計頻率的典型用法
rune支持 Unicode 字符(中文、表情、特殊符號)
for _, r := range str正確遍歷字符串每個字符(而不是每個字節(jié))

四、實現(xiàn)需求

  • 用戶輸入任意一段文字;
  • 程序逐個字符統(tǒng)計出現(xiàn)次數(shù);
  • 忽略字節(jié)編碼問題,支持中文;
  • 輸出格式整齊,便于查看;
  • 可拓展成圖表/詞云工具基礎(chǔ)。

五、 完整代碼實現(xiàn)

package main

import (
	"bufio"
	"fmt"
	"os"
	"sort"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	fmt.Print("請輸入一段文字:")
	input, _ := reader.ReadString('\n')

	counts := countCharacters(input)

	// 排序輸出
	var keys []rune
	for k := range counts {
		keys = append(keys, k)
	}
	sort.Slice(keys, func(i, j int) bool {
		return keys[i] < keys[j]
	})

	fmt.Println("\n字符統(tǒng)計結(jié)果:")
	for _, r := range keys {
		fmt.Printf("%q: %d\n", r, counts[r])
	}
}

// 統(tǒng)計字符出現(xiàn)次數(shù)
func countCharacters(s string) map[rune]int {
	result := make(map[rune]int)
	for _, r := range []rune(s) {
		result[r]++
	}
	return result
}

六、運行示例

示例1:

請輸入一段文字:hello, 世界

字符統(tǒng)計結(jié)果:
'\t': 1
',': 1
'e': 1
'h': 1
'l': 2
'o': 1
'世': 1
'界': 1
'\n': 1

'\n''\t' 說明:默認(rèn)輸入帶有換行符,可根據(jù)需要清洗。

七、 核心代碼解析

代碼段說明
map[rune]int創(chuàng)建一個以字符為鍵、出現(xiàn)次數(shù)為值的映射
[]rune(s)將字符串轉(zhuǎn)為字符切片,避免中文字符拆分錯誤
sort.Slice將輸出結(jié)果按字符順序排序

八、 拓展練習(xí)建議

  • 排除空格或標(biāo)點,只統(tǒng)計字母與數(shù)字;
  • 將結(jié)果寫入文件保存;
  • 改為支持詞語統(tǒng)計(用 strings.Fields() 分詞);
  • 輸出詞頻圖或柱狀圖(結(jié)合 github.com/olekukonko/tablewriter 或 ASCII 圖表庫);

九、 常見錯誤提示

  • 遍歷字符串用 []byte:會導(dǎo)致中文字符被拆成多個 byte;
  • 統(tǒng)計字符時忘記使用 rune 類型;
  • 輸出結(jié)果不排序,閱讀困難。

小結(jié)

通過這個案例,你學(xué)會了:

  • 如何遍歷字符串中每一個字符(支持中文)
  • 如何使用 map 來進(jìn)行頻率統(tǒng)計
  • 如何對統(tǒng)計結(jié)果進(jìn)行排序并美觀輸出

這是實際項目中非常有價值的一種“文本特征提取”技術(shù),是通往 NLP 和算法世界的一扇小門。

到此這篇關(guān)于Go語言實現(xiàn)統(tǒng)計字符串中每個字符出現(xiàn)的次數(shù)的文章就介紹到這了,更多相關(guān)Go統(tǒng)計字符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

吉安县| 大理市| 乌拉特中旗| 怀宁县| 扎鲁特旗| 杭锦后旗| 德安县| 彰化县| 西峡县| 嵊泗县| 新津县| 巴楚县| 军事| 阿拉善右旗| 益阳市| 洛川县| 唐海县| 顺平县| 阿瓦提县| 台东县| 凤冈县| 鹤山市| 邹平县| 长乐市| 迁安市| 原阳县| 乌苏市| 广元市| 扬中市| 道真| 禄丰县| 专栏| 德安县| 剑川县| 靖州| 武鸣县| 油尖旺区| 威海市| 庆城县| 黑龙江省| 莱州市|