文本行排序工具 — 升序、降序、去重
将文本行按字母顺序或逆序排列,支持不区分大小写比较、删除重复行、去除空行及修剪首尾空白。所有处理均在浏览器本地完成,数据不会发送到服务器。
工作原理
文本排序的工作原理
排序将文本拆分为独立的行,按字典序排列后再重新合并。字典序与词典中使用的原理相同:从左到右逐字符比较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列进行排序?
从电子表格应用复制列值粘贴到输入区域(每行一个值),设置选项后排序,复制排序结果再粘贴回去,然后手动或用公式重新关联其他列。
相关工具
最后更新: