文字行排序工具 — 升序、降序、去除重複
將文字行按字母順序或逆序排列,支援不區分大小寫比較、刪除重複行、去除空行及修剪首尾空白。所有處理均在瀏覽器本機完成,資料不會傳送至伺服器。
運作原理
文字排序的運作原理
排序將文字拆分為獨立的行,按字典序排列後再重新合併。字典序與詞典中使用的原理相同:從左到右逐字元比較Unicode碼點大小。
預設情況下,工具使用不區分大小寫的比較,因此「apple」、「Apple」和「APPLE」在排序時視為相同。若需要大寫字母排在小寫字母前(如ASCII順序中「Z」在「a」之前),請啟用區分大小寫模式。
常見使用情境
對姓名清單、標籤雲或CSV欄位值進行字母排序是最常見的用途。開發者經常對import陳述式或設定鍵進行排序,使程式碼審查和diff輸出更加整潔。
資料分析師用行排序快速找出匯出清單中的重複項目,或在手動比對前對齊兩個資料集。去重選項可將包含數千筆資料的清單一鍵壓縮為唯一值。
排序演算法的內部機制
現代JavaScript引擎對Array.prototype.sort方法使用TimSort的最佳化變體(合併排序和插入排序的混合演算法)。TimSort是穩定排序,相等的行會保持原有的相對順序,在對去重後的清單排序時可獲得一致的行為。
對於絕大多數文字清單,即使數十萬行,瀏覽器內的處理時間也遠不到一毫秒。如果需要地區感知排序(如法語或德語中帶重音字元的正確排序),請在自己的程式碼中使用Intl.Collator,本工具為追求最大速度使用簡單的Unicode碼點比較。
常見問題
›排序是自動進行的嗎?
是的。輸入內容或更改任何選項時,結果會即時更新,無需點擊提交按鈕。
›預設是否區分大小寫?
不區分。預設使用不區分大小寫的排序,因此「Apple」和「apple」會排在一起。勾選「區分大小寫」核取方塊可切換為原始Unicode碼點順序。
›「行」是如何界定的?
每個換行字元(\n)標記一行的結束。從試算表或Windows(\r\n換行符)貼上的文字也能正確處理,按邏輯行進行排序。
›可以對數字排序嗎?
本工具按字典序而非數值排序,因此「10」會排在「9」前面,因為「1」<「9」。若需數值排序,請在貼上前用前置零補齊(如「09」vs「10」)。
›「刪除重複行」的具體作用是什麼?
保留每個唯一行的首次出現,丟棄後續相同的行。比較遵循大小寫設定,在不區分大小寫模式下,「Apple」和「apple」視為同一行。
›我的資料會離開瀏覽器嗎?
不會。所有處理均在JavaScript中本機完成,不會上傳到任何伺服器。
›有行數限制嗎?
本工具沒有強制行數限制。效能取決於您的裝置,但現代瀏覽器處理數十萬行也不會出現明顯延遲。
›如何對CSV欄位進行排序?
從試算表應用程式複製欄位值貼到輸入區域(每行一個值),設定選項後排序,複製排序結果再貼回去,然後手動或用公式重新關聯其他欄位。
相關工具
最後更新: