如何在数组中找到多少相同的单词,而不在perl中重复它们? #/usr/bin/perl 打印“数组中有多少个字?\n”; $x=; $i=0; 而($i
所以,如果我输入我想在数组中有5个单词,“hello”和“bye”,我会得到如下结果: 你好如何在数组中找到多少相同的单词,而不在perl中重复它们? #/usr/bin/perl 打印“数组中有多少个字?\n”; $x=; $i=0; 而($i,perl,Perl,所以,如果我输入我想在数组中有5个单词,“hello”和“bye”,我会得到如下结果: 你好 重复3次 你好 重复3次 你好 重复3次 再见 重复2次 再见 重复2次 我怎样才能得到这样的结果: hello重复3次 再见重复2次 我的意思是如何避免相同的单词检查?首先:始终在脚本中添加使用严格的使用警告。你会省去很多心痛。第二,当单词出现在STDIN中时,你需要记住它们,否则它们将包括尾随的换行符 我将按如下方式进行讨论。使用散列(或字典)存储作为关键字输入的每个单词,以及它被视为值的次数。在这
重复3次
你好
重复3次
你好
重复3次
再见
重复2次
再见
重复2次 我怎样才能得到这样的结果: hello重复3次 再见重复2次
我的意思是如何避免相同的单词检查?首先:始终在脚本中添加
使用严格的使用警告。你会省去很多心痛。第二,当单词出现在STDIN中时,你需要记住它们,否则它们将包括尾随的换行符
我将按如下方式进行讨论。使用散列(或字典)存储作为关键字输入的每个单词,以及它被视为值的次数。在这里输入hello三次将产生一个键,hello
,与值3
关联
#!/usr/bin/perl
print "How many words in array?\n";
$x = <STDIN>;
$i = 0;
while($i < $x ){
print "Enter $i word\n";
$y = <STDIN>;
$arr[$i]= $y;
$i++;
};
$i = 0;
$hm = @arr;
for (my $i=0; $i < $hm; $i++){
my $many = grep(/$arr[$i]/, @arr);
print "$arr[$i] repeats $many times\n";
}
使用散列。使用本网站上的搜索功能——这个问题(或其变体)以前被问过很多次。请在每个perl程序的顶部使用Use strict
和Use warnings
。你能解释一下这一行是如何工作的吗<代码>$words{$y}++代码>我的意思是你为什么使用++?哦。。。现在我明白了。。。对不起,我问了你一个愚蠢的问题,谢谢你;DIt与写入$words{$y}+=1
相同,它第一次看到hello时,值是1
,第二次增加1到2
。。
print "How many words in array?\n";
my $x = <STDIN>;
my $i = 0;
my %words;
while($i < $x ){
print "Enter $i word\n";
my $y = <STDIN>;
chomp($y);
$words{$y}++;
$i++;
for my $w (keys %words){
print "$w repeats $words{$w} times ";
}
print "\n";