文本列表按长度排序
按每行的 Unicode 码点长度排序,支持升序或降序:一个汉字算 1、一个 emoji 算 1(不按 UTF-16 码元算),相同长度保持原顺序,并可给出最短/最长/平均长度与每行的长度明细。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
列表
排序结果
一行一项,长度按 Unicode 码点算。
输入列表后即可按长度排序
行数: 0 · 最短: 0 · 最长: 0 · 平均长度: 0
这个工具能做什么
- 检查一列文本的长度分布:把最短与最长的排在一起,一眼看出异常值。
- 为固定宽度排版做准备:先按长度排序,再决定截断或补空格。
- 按名字长度整理名单,方便做对齐展示或导出成等宽表格。
示例
输入
樱桃 苹果 香蕉
输出
樱桃 苹果 香蕉
按码点长度升序:kiwi/苹果 最短在前;相同长度(苹果、香蕉都是 2)保持输入里的先后顺序。
常见问题
中文和 emoji 算几个字符?
按 Unicode 码点算:一个汉字算 1,一个 emoji 算 1,所以「你好」长度是 2、「🙂」长度是 1。这与 JavaScript 的 `str.length` 不同——后者按 UTF-16 码元计,emoji 会被算成 2。
长度相同会不会打乱顺序?
不会。比较函数在长度相等时用原始行号兜底,所以相同长度的行严格保持输入顺序(稳定排序)。想按码点再排一次可以勾选「同长度再按内容排序」。
升序和降序怎么切换?
默认升序(短的在前),把「排序方向」切成「长的在前」就是降序。降序下相同长度的行同样保持输入顺序,只是整段反过来。
空行与首尾空格参与排序吗?
空行默认被丢掉;「去掉每行首尾空白」默认打开,所以长度按去空白后的内容算,输出也输出去空白后的写法。要保留缩进参与计数就把这个开关关掉。
关键词:按长度排序sort by length列表排序短到长长到短文本长度码点长度行长排序