string - 如何忽略哈希表中的空格?
问题描述
当我运行代码的哈希表时,该表似乎考虑了空格(“:405%”)。我们如何过滤它?我试图用 if 条件来做,但它似乎不起作用。
my @g = ();
foreach my $e (@genres){
my $genre = $e->as_text;
@g = split(/[à| ]/,$genre);
foreach my $e2 (@g){
if ($e2 ne ("Genres:" or ' ') ) {
$index{$e2}++;
}
}
}
预先感谢您的回答
解决方案
@g = split(/[à| ]/,$genre); foreach my $e2 (@g){ if ($e2 ne ("Genres:" or ' ') ) { $index{$e2}++; } }
很多这很奇怪。让我们一次看一行。
@g = split(/[à| ]/,$genre);
我不知道你为什么分手[à| ]
。特别是,我在您的数据中看不到任何“à”实例。通过分割空格,你会得到一个包含三个元素的数组——第一个是类型,第二个总是冒号,第三个是百分比。
foreach my $e2 (@g){
现在你正在走你的阵列。但我认为您只对作为数组第一个元素的类型感兴趣。那么为什么要看另外两个呢?
if ($e2 ne ("Genres:" or ' ') ) {
这根本不像你认为的那样。您一次只能与一个值进行比较。所以这需要是:
if ($e2 ne 'Genres:' and $e2 ne ' ') {
而且,即使那样,第一个表达式也永远不会匹配,因为您的流派字符串都不是“流派”,并且它们都不包含冒号(除了,正如我们之前所说,第二个元素@g
将只包含一个冒号。
我认为您真正想要的是:
my ($genre_name, $percent) = split(/ : /, $genre);
if ($genre_name ne 'Genres' and $genre_name ne ' ') {
$index{$e2}++;
}
推荐阅读
- kubernetes - 法兰绒经常重启
- javascript - Vue active class v-for
- node.js - 音频文件未完全在语音通道中播放
- python - 'if' 执行事件后程序未结束
- html - xslt:css在html页面中没有工作
- javafx - 如何访问嵌套在公共静态类中的方法(值)
- spring - Spring Boot 在当前默认属性之上添加属性
- android - Xamarin ADAL - AcquireTokenAsync 返回空结果
- php - 如何根据我在 Redux Framework 选项页面中的值使用 get_template_part() 切换模板?
- c# - 过滤collectionview时WPF DataGrid变慢