1、原题

2、perl脚本

print "================ Method 1=====================\n";
open IN,'<','anna-karenina.txt';
while(<IN>){
chomp;
$line = $_;
$line =~ s/[ \. , ? ! ; : ' " ( ) { } \[ \]]/ /g; #句号,逗号等统一改为空格
#print("$line\n");
@words = split(/\s+/,$line);
foreach $word (@words){
$counts{lc($word)}++; #将出现的单词存入hash表
}
}; foreach $word (sort keys %counts) {
print "$word,$counts{$word}\n"; #打印出单词出现的个数
}
close IN; print "================ Method 2=====================\n";
open IN,'<','anna-karenina.txt';
while (my $line = <IN>)
{
#map{$words{$_}++;} $line =~ /(\w+)/g # 与下面的语句等效 #print($line =~ /(\w+)/g);
foreach ($line =~ /(\w+)/g){ # 对单词进行匹配
#print("$_\n");
$words{lc($_)}++;
}
}
for (sort keys(%words))
{
print "$_: $words{$_}\n";
}

3、结果

1)测试文本

All happy families resemble one another; every unhappy family is unhappy in its own way.
All was confusion in the house of Oblonskys. happy? happy: [happy] {happy} "happy" 'happy'

2)输出

================ Method =====================
all,
another,
confusion,
every,
families,
family,
happy,
house,
in,
is,
its,
oblonskys,
of,
one,
own,
resemble,
the,
unhappy,
was,
way,
================ Method =====================
all:
another:
confusion:
every:
families:
family:
happy:
house:
in:
is:
its:
oblonskys:
of:
one:
own:
resemble:
the:
unhappy:
was:
way:

4、涉及的知识点

1)对多个项目进行替换可以使用方括号:

  $line =~ s/[ \. , ? ! ; : ' " ( ) { }  \[ \]]/ /g; #句号,逗号等统一改为空格

2)将单词小写lc,用哈希计数

  $counts{lc($word)}++;  #将出现的单词存入hash表

3)访问哈希整体%,访问哈希键值keys %,排序sort

  sort keys %counts

4)方法2使用  $line =~ /(\w+)/g  直接将文本中的单词转换成列表

Perl-统计文本中各个单词出现的次数(NVDIA2019笔试)的更多相关文章

  1. python统计文本中每个单词出现的次数

    .python统计文本中每个单词出现的次数: #coding=utf-8 __author__ = 'zcg' import collections import os with open('abc. ...

  2. Linux统计文本中某个字符串出现的次数

    常用的有如下两种方式: 1.VIM 用vim打开文件,然后输入: :%s/hello//gn 如下图: 图中的例子就是统计文本中"hello"字符串出现的次数 说明: %s/pat ...

  3. Python的 counter内置函数,统计文本中的单词数量

    counter是 colletions内的一个类 可以理解为一个简单的计数 import collections str1=['a','a','b','d'] m=collections.Counte ...

  4. Hadoop 统计文件中某个单词出现的次数

    如文件word.txt内容如下: what is you name? my name is zhang san. 要求统计word.txt中出现“is”的次数? 代码如下: PerWordMapper ...

  5. 【面试题总结】1、统计字符串中某个单词出现的次数(1-C++实现)

    [解决方法一]C++ map解决 一.map中的find函数: 用于查找map中是否包含某个关键字条目,传入的参数是要查找的key,最后返回一个迭代器,如果没有找到,则返回的迭代器等于end()返回的 ...

  6. java统计文本中单词出现的个数

    package com.java_Test; import java.io.File; import java.util.HashMap; import java.util.Iterator; imp ...

  7. python练习:一行搞定-统计一句话中每个单词出现的个数

    一行搞定-统计一句话中每个单词出现的个数 >>> s'i am a boy a bood boy a bad boy' 方式一:>>> dict([(i,s.spl ...

  8. HashMap 统计一个字符串中每个单词出现的次数

    HashMap 统计一个字符串中每个单词出现的次数 import java.util.HashMap; import java.util.Map; public class Test { public ...

  9. Python3求英文文档中每个单词出现的次数并排序

    [本文出自天外归云的博客园] 题目要求: 1.统计英文文档中每个单词出现的次数. 2.统计结果先按次数降序排序,再按单词首字母降序排序. 3.需要考虑大文件的读取. 我的解法如下: import ch ...

随机推荐

  1. 70. Climbing Stairs QuestionEditorial Solution

    You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...

  2. FFMPEG学习----使用SDL播放PCM数据

    参考雷神的代码: /** * 最简单的SDL2播放音频的例子(SDL2播放PCM) * Simplest Audio Play SDL2 (SDL2 play PCM) * * 本程序使用SDL2播放 ...

  3. 永久解决AndroidStudio Aapt2的问题

    https://blog.csdn.net/qq_37280248/article/details/80142260 修改电脑c://user/王明 中文名去掉 https://www.jb51.ne ...

  4. Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest

    Educational Codeforces Round 76 (Rated for Div. 2) E. The Contest(dp+线段树) 题目链接 题意: 给定3个人互不相同的多个数字,可以 ...

  5. 2019icpc西安邀请赛

    来源:https://www.jisuanke.com/contest/2625?view=challenges 更新中 A.Tasks 直接贪心 代码:听说当时很多队伍提前拆题甚至上机了,所以很多0 ...

  6. (三)(2)wait/notify实现生产者-消费者模型,join方法

    生产者,消费者模型 举个例子来说明,厨师,服务员,厨师做菜,服务员上菜,如果厨师没有做好菜,那么服务员就无法上菜,厨师做好了菜,然后通知服务员消费(上菜).在这个过程之中,厨师扮演的就是生产者,服务员 ...

  7. EMC NW NMM to backup MS AG

    To use EMC NW NMM to backup MS SQL always on database, that is a simple and safe way to protector da ...

  8. 2020牛客寒假算法基础集训营4 D:子段异或

    D : 子段异或 考察点 : 位运算,前缀和,异或的性质和应用 坑点 : 0 - L 的异或值是 0 的话也是一个区间 相同的值可能有多个,那么这时候区间就会有多个(x * (x + 1) / 2) ...

  9. mybatis级联查询,多对一查询问题

    在使用Mybatis进行多表级联查询时遇到了一个问题:查询结果只有一项,但正确结果是两项.经测试,SQL语句本身没有问题. 在SQL映射文件(XML)中: <!-- 级联查询数据 --> ...

  10. 11-HTTP请求协议

    今日知识 1. http 2. Tomcat使用 3. 知识总结 HTTP 1. 概念:Hyper Text Transfer Protocol * 传输协议:定义了,客户端和服务器通信时,发送的数据 ...