gpt4 book ai didi

perl - perl中的字符串数组排序问题

转载 作者:行者123 更新时间:2023-12-02 10:53:27 25 4
gpt4 key购买 nike

我正在运行下面的代码来对字符串进行排序,但没有得到预期的结果。

代码:

use warnings;
use strict;

my @strArray= ("64.0.71","68.0.71","62.0.1","62.0.2","62.0.11");
my @sortedStrArray = sort { $a cmp $b } @strArray;

foreach my $element (@sortedStrArray ) {
print "\n$element";
}

结果:

62.0.1
62.0.11 <--- these two
62.0.2 <---
64.0.71
68.0.71

预期结果:

62.0.1
62.0.2 <---
62.0.11 <---
64.0.71
68.0.71

最佳答案

“1”字符0x31。 “2”是字符 0x32。 0x31 小于 0x32,因此“1”排在“2”之前。您的期望不正确。

要获得您想要的结果,您可以使用以下内容:

my @sortedStrArray =
map substr($_, 3),
sort
map pack('CCCa*', split(/\./), $_),
@strArray;

或者对于更广泛的输入:

use Sort::Key::Natural qw( natsort );
my @sortedStrArray = natsort(@strArray);

关于perl - perl中的字符串数组排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15164568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com