在開發程式時,常會需要將含有數字的字串(例如:圖片1,圖片2,第1章,第2章)進行排序。程式語言通常會內建字串排序功能,但是在排序字串的時候大多會發生一個問題,那就是它們會「排錯」字串內的數子。舉個例子,若要排序螢幕截圖檔案的檔名,分別有shot-2, shot-1和shot-11這三張截圖,則檔名的正確排序的結果應為「shot-1, shot-2, shot-11」,但許多程式語言只會按照字串的辭典順序,將檔名排成「shot-1, shot-11, shot-2」這樣不直覺的結果,就連Rust程式語言也不例外。所以如果要讓Rust程式語言正確排序含有數字的字串,該怎麼做呢?



Alphanumeric Sort

「Alphanumeric Sort」是筆者開發的套件,可以正確比較包含數字的字串的順序,並支援字串陣列和Path結構實體陣列的排序。

Crates.io

https://crates.io/crates/alphanumeric-sort

Cargo.toml

alphanumeric-sort = "*"

使用方法

若要比較兩個字串的順序,可以使用「compare_str」函數。

若要排序字串陣列(切片),可以使用「sort_str_slice」函數。

若要排序Path結構實體陣列(切片),可以使用「sort_path_slice」函數。