Re: [問題] 以字串中的數字而非字串來排序?

看板Programming作者 (Alien)時間18年前 (2007/10/17 13:09), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《WayneChu (台北人在洛城)》之銘言: : 比如說,我有一串檔名: : 1.jpg 2.jpg .... 11.jpg 12.jpg : 在視窗的資料夾中就會以 : 1.jpg 2.jpg .... 11.jpg 12.jpg 排列 : 但是用字串排序就會變成 : 1.jpg 11.jpg 12.jpg ... 2.jpg : 要是事前完全不知道會遇到怎樣的檔名 : 要如何讓程式分析出檔名中的數字來排列? 你所謂事前完全不知道會遇到怎樣的檔名, 是甚至想 myfile1.txt, myfile11.txt, myfile2.txt 也能正確排序? 要是裡面有多組數字呢? 大略的想法是寫一個 comparator, 把檔名以 分成數字及非數字段, 要逐一 compare e.g. myfile1.jpg myfile2.jpg xxx1yyy2.jpg 9xyz.jpg 分成 "myfile" "1" ".jpg" "myfile" "2" ".jpg" "xxx" "1" "yyy" "2" ".jpg" "" "9" "xyz.jpg" 要比較, 就逐段比較, e.g. myfile1.jpg myfile2.jpg 第一段 myfile vs myfile, 一樣, 所以 compare 第二段 1 vs 2 . 每逢偶數段就轉成 integer compare 前者較小, 所以return 說前者較小就行了 其他同理. empty string, 不同字段長度之類就自己想想, 該不會太難 Alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.22.246.26 ※ 編輯: adrianshum 來自: 202.22.246.26 (10/17 13:12) ※ 編輯: adrianshum 來自: 202.22.246.26 (10/17 13:13)

10/19 01:17, , 1F
好方法,多謝了
10/19 01:17, 1F
文章代碼(AID): #175Pa55E (Programming)
文章代碼(AID): #175Pa55E (Programming)