Rust : 红楼梦一书中文字符的统计
2017-10-29 21:57
162 查看
一、准备工作
1、相关的库
因为红书中大部分是中文字符,标准库中目前还无法直接处理。因此,在进行分析前,在toml文件中的依赖库中,添加一下以下:
具体可参考以下资料:
2、红楼梦一书的txt文件。直接找度娘。
二、相关代码
或main{}中以下代码可以改一下:
你可以看到不同字符串出现的频率了。
1、相关的库
因为红书中大部分是中文字符,标准库中目前还无法直接处理。因此,在进行分析前,在toml文件中的依赖库中,添加一下以下:
encoding = "0.2"
具体可参考以下资料:
https://github.com/lifthrasiir/rust-encoding
2、红楼梦一书的txt文件。直接找度娘。
二、相关代码
extern crate encoding; use encoding::{Encoding, DecoderTrap}; use encoding::all::GB18030; //可以转成汉字的字库 fn main() { let mut f = File::open("C:\\Users\\Desktop\\redstory.txt") .ok() .expect("file read error!"); let mut hp: HashMap<char, i32> = HashMap::new(); let mut reader: Vec<u8> = Vec::new();//u8集 f.read_to_end(&mut reader).ok().expect("can not read file"); let mut content = String::new();//字符串 GB18030.decode_to(&mut reader, DecoderTrap::Ignore, &mut content); for c in content.chars() { let counter = hp.entry(c).or_insert(0); *counter += 1; } println!("hp:{:?}", hp); }
或main{}中以下代码可以改一下:
extern crate encoding; use encoding::{Encoding, DecoderTrap}; use encoding::all::GB18030; //可以转成汉字的字库 fn main() { let mut f = File::open("C:\\Users\\Desktop\\redstory.txt") .ok() .expect("file read error!"); let mut reader: Vec<u8> = Vec::new(); let mut hp: HashMap<char, i32> = HashMap::new(); f.read_to_end(&mut reader).ok().expect("can not read file"); let content:String = GB18030.decode(&reader, DecoderTrap::Strict).unwrap(); for d in content.chars() { let counter = hp.entry(d).or_insert(0); *counter += 1; } println!("hp :{:?}", hp); }
你可以看到不同字符串出现的频率了。
相关文章推荐
- jquery 多维数组实现PHP的count、in_array(不区分大小写),utf8字符串(包含中文,中文字符2个字节)字节统计
- 字符串统计,一个中文算2个字符,一个英文算一个字符
- 统计一个字符中中文,英文,数字出现的次数
- 有一个字符串,其中包含中文字符、英文字符和数字、空格及其他字符,请统计和打印出各个字符的个数。
- 统计汉字长度2个英文字符=1个中文
- 字数统计方式统计字数(简单版)中文算1个,英文算0.5个,全角字符算1个,半角字符算0.5个。
- 有一个字符串,其中包含中文字符、英文字符和数字字符 ,请统计和打印出各个字符的个数。
- 有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。
- PAT (Basic Level) Practise (中文) 1042. 字符统计(20)
- (Map实现)有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数
- Rust : 读含有中文字符的CSV文件解决方案
- PHP统计包含汉字的字符长度 ( 改善Smarty modifier.truncate.php 中文支持)
- PAT (Basic Level) Practise (中文)1042. 字符统计(20)
- JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
- 统计一段文字中数组、中文、英文字母、空格以及其他特殊字符出现的次数
- 有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。
- Java统计字符串中中文,英文,特殊字符出现的次数
- 一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数
- java统计中文字符出现次数
- 分割字符串(有一个字符串,其中包含中文字符、英文字符和数字字符, * 请统计和打印出各个字符的个数)