文本处理速查表
去重、删空行、对比差异、打码、统计字数……这些零碎的文本操作几乎每个开发者和运营都会遇到。本页把 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 世纪起被排版行业沿用。用它的好处是读者不会被内容吸引而忽略排版本身,能专心看字体、行距和留白。做设计稿和前端组件联调时用它占位,比用中文假文更容易判断西文的视觉效果。