跳到主内容
UniKit

文本列表按长度排序

按每行的 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列表排序短到长长到短文本长度码点长度行长排序

同类工具