我怎麼排序哈希表的鍵(音素) 我的意思是,如果在哈希表(稱爲%tags
)3個按鍵,"MWE", "wPrefix", "conjunction"
,如果我使用常規排序:案例獨立分揀
foreach $tag (sort keys %tags) {
print "$tag\n";
}
我得到的輸出是:
MWE
conjunction
wPrefix
但輸出應該是:
conjunction
MWE
wPrefix
我怎麼排序哈希表的鍵(音素) 我的意思是,如果在哈希表(稱爲%tags
)3個按鍵,"MWE", "wPrefix", "conjunction"
,如果我使用常規排序:案例獨立分揀
foreach $tag (sort keys %tags) {
print "$tag\n";
}
我得到的輸出是:
MWE
conjunction
wPrefix
但輸出應該是:
conjunction
MWE
wPrefix
使用塊代碼排序功能,每個項目的大寫比較:
foreach $tag (sort {uc($a) cmp uc($b)} keys %tags) {
print "$tag\n";
}
這是不區分大小寫的排序,因爲@戴夫Sherohman指出
值得指出的是,Perl的V16具有適當的情況下摺疊設施,與完整的Unicode字符集工作公正。你需要'使用的功能「fc''(或'使用5.016'),然後'FC美元CMP FC $ B'。 – Borodin
@Borodin的確如此;肯定有使用'uc'而不是'fc'產生錯誤答案的情況。而且,即使如此,對於整理不好的非套裝物品也沒有合理的結果。數字在字母方面在哪裏?那麼各種符號和標點符號等呢? – tchrist
'fc'也可在比皮爾斯5.16(但至少5.8.1)的年齡較大的通過安裝[Unicode的:: CaseFold](https://metacpan.org/pod/Unicode::CaseFold)。 – hobbs
我相信你說的是「不區分大小寫」排序而不是「語音」排序。如果不是,那麼你必須指定你的首選方法將單詞轉換成語音表示。 –