文本处理速查表

去重、删空行、对比差异、打码、统计字数……这些零碎的文本操作几乎每个开发者和运营都会遇到。本页把 9 类常见操作的作用与场景列成对照表,并厘清最容易混淆的五种统计口径。

9 类常见文本处理操作

操作做什么典型场景
字数统计统计字符数、词数、行数、字节数与最长行投稿字数限制、接口报文长度校验
去重行删除重复行,通常保留首次出现的顺序清洗导出名单、合并多个关键词表
删除空行去掉纯空白行与仅含空格的行整理从 PDF 或网页复制的文本
文本对比逐行或逐词比较两份文本,标出增删改核对配置文件改动、审稿改稿
字符串打码把部分字符替换为星号或掩码截图前隐藏手机号、邮箱、密钥
单复数转换按英文规则把名词转成单数或复数生成国际化文案、代码里的量词
邮箱归一化统一大小写、拆分别名与域名、去重点去重注册用户、清洗邮件列表
NATO 音标把字母转成 Alpha、Bravo、Charlie 等读音词电话里核对订单号、验证码
占位文本生成生成指定段落或字数的假文填充排版设计稿占位、前端组件联调

五种统计口径的区别

同样一段文字,换一种口径数字可以差三倍。统计前先确认对方要的是哪一种。

口径定义示例
字符数Unicode 码点个数,一个汉字算 1「你好 hi」→ 4
字节数UTF-8 编码后的存储字节数,汉字通常 3「你好 hi」→ 8
词数按空白切分;中文无空格需按字或分词统计「你好 hi」→ 1 或 3(视口径)
行数换行符个数加一,注意 CRLF 与 LF 差异两行文本 → 2
显示宽度全角字符按 2、半角按 1 估算的占位宽度「你好 hi」→ 6

常见问题

中文字数到底怎么算才算对?

没有唯一答案,取决于用途。投稿和稿费结算通常按「字符数(不含空格)」或「字数」口径,一个汉字算一个字;数据库字段长度限制看的是字节数,UTF-8 下一个汉字占 3 字节;而排版宽度要看显示宽度,全角算两格。统计前先确认对方要的是哪一种口径,差距可以到三倍。

去重行会不会打乱原来的顺序?

多数工具的默认行为是保留首次出现的顺序,也就是保留第一次读到该行时的位置,删除后面重复的行。如果你需要按字母排序后再去重,应该先排序再去重。反过来,如果顺序本身有意义(比如日志时间线),就不要先排序。

NATO 音标字母表现在还有用吗?

有,而且在电话客服、远程协作场景里非常实用。它把 26 个字母映射到不易听混的词(A 是 Alpha、B 是 Bravo),专门解决 b 和 d、m 和 n 在语音里难以区分的问题。核对订单号、验证码、序列号时逐字念音标词,比反复说「b 还是 d」高效得多。

Lorem ipsum 到底是什么,为什么大家都用它?

它是一段经过改写、看起来像拉丁文但没有实际含义的填充文本,源自西塞罗的著作,从 16 世纪起被排版行业沿用。用它的好处是读者不会被内容吸引而忽略排版本身,能专心看字体、行距和留白。做设计稿和前端组件联调时用它占位,比用中文假文更容易判断西文的视觉效果。