小编use*_*061的帖子

使用'说'的奇怪输出

我需要第二双眼睛.每当其中一个条件(if或elsif)为真时,我就会得到一个额外的换行符.我不希望这样.

use strict;
use warnings;
use autodie;
use feature 'say';

my $filename = 'rr.txt';
open my $fh, '<', $filename;

while (<$fh>) {
  my ($last_name, $first_name, $country) = split /[,\|]/, $_;
  my $middle_name;
  $country =~ s/^\(//;
  $country =~ s/\)$//;
  say "Last Name: $last_name";
  say "First Name: $first_name";
  say "Country: $country";

  if ($first_name =~ /\w\s(\w+)/) {
     $middle_name = $1;
     say "Middle Name: $1";
  } elsif ($first_name =~ /\w\-(\w+)/) {
     $middle_name = $1;
     say "Middle Name: $1";
  }

}
Run Code Online (Sandbox Code Playgroud)

该文件如下所示:

Reid, Matt|(AUS)
Samper-Montana, …
Run Code Online (Sandbox Code Playgroud)

perl

3
推荐指数
1
解决办法
115
查看次数

比较两个arraylists以保持它们之间的增量的有效方式

这是我的问题:

我需要比较两个ArrayLists并返回它们是否相同或者它们是不同的,返回其中一个元素是新的元素,可以这么说.

这是数据集的行为:

  • 两个ArrayLists由字符串组成
  • 它们来自同一个来源,因此大部分时间都是相同的
  • 是有序的(在附加到他们的自定义逻辑的意义上)
  • 永远不会有空的弦乐
  • 所有的弦乐总是有相同的长度
  • 没有重复

我想要的是:

  • 实现我的两个目标的最快方式,无论哪种情况
  • 仅使用Java 1.6标准库特性,我宁愿不实现一个混合类,它可以从List模拟一些东西然后再设置为Set.

例:

A: [ 'a', 'b', 'c', 'd']   

B: [ 'a', 'c', 'd']
Run Code Online (Sandbox Code Playgroud)

结果:列表不同,返回元素'b'; A将是"工作"列表,我们将根据此ArrayList中的新内容进行比较,因为B将永远不会更改.

感谢您的回复和您的意见.

java algorithm arraylist set data-structures

1
推荐指数
1
解决办法
2676
查看次数

获取数组的索引作为smartmatch操作的结果?

有没有办法获得标量和使用smartmatch运算符(~~)完成的数组之间的比较所得到的匹配索引?

if ( $str ~~ @data ) {
   #code to get index of array where match occurred
}
Run Code Online (Sandbox Code Playgroud)

如果存在匹配,则条件中的表达式将返回true,因此没有任何帮助.

在任何人给我上课之前:我非常喜欢smartmatch操作符,在非常简单的情况下,我不会在数据结构与数据结构或其他疯狂的任何疯狂比较中使用它.

perl

0
推荐指数
1
解决办法
124
查看次数

标签 统计

perl ×2

algorithm ×1

arraylist ×1

data-structures ×1

java ×1

set ×1