HandyTools Hub

🔀 单词打乱器

在保持首尾字母不变的情况下打乱单词中的字母。

🔒 100% 客户端处理

单词打乱器会把每个单词内部的字母重新洗牌,默认保留首尾字母不动。结果乍看像乱码,却往往出奇地好读,这正是它在教学和谜题中好用的原因。大小写、标点和空白都会被保留,因此输出仍像正常的文章。

打乱器实际做了什么

工具只按空白切分文本,因此每一段空白都原样插回,每个非空白 token 单独打乱。对于一个 token,它会提取开头和结尾的非字母字符,取出字母核心,并检查核心长度。三个字母及以下的核心原样返回。更长的核心被拆成首字母、末字母和中间块。中间块经过 Fisher-Yates 洗牌——一种单遍算法,把每个位置与一个随机的靠后位置交换,得到无偏排列。如果「保留首尾」开启,洗牌后会把锚定的首尾字母接回。当中间部分有不止一个不同字母时,循环最多尝试十次,以避免返回原来的拼写。

取消勾选「保留首尾」,整个核心都会被洗牌,同样有重试保护。无论哪种方式,操作都是排列:不添加、不删除字符,也不在单词之间移动字符,因此打乱后的文本长度始终与输入相同。

使用方法

  1. 在左侧框输入或粘贴文本。如果想试验,会预加载一段剑桥风格的示例段落。
  2. 保留「保留首尾」勾选以获得最佳可读性,或取消勾选以打乱整个单词。
  3. 点击「打乱」。输出框会就地更新。
  4. 点击「重新打乱」,对同一输入掷出新的随机排列。
  5. 使用「复制」把结果放进剪贴板。

实操示例

输出是随机的,以下只是可能的结果之一:

  • hello → 首字母 h,末字母 o,中间 e l l 洗牌 → hlleo 或 hlelo。
  • reading, → 末尾逗号被留下,中间 e a d i n 洗牌 → radenig,(逗号永不移动)。
  • doesn't → 撇号位于核心内部,随字母一起漂移,所以 doesn't 可能变成 dons'et。
  • the 和 cat → 不变,因为它们的字母核心是三个字符。
  • well-known → 连字符是内部字符,因此随中间字母一起移动,而不是充当词边界。
单词长度内部字母数预期效果
1–30–1原样返回
4–52–3排列很少;通常仍然一目了然
6–84–6明显混乱,但放在语境中仍可读
9+7+可读性很大程度上取决于句子

乱序文字为什么仍然可读

熟练的读者不会从左到右扫描每一个字母。他们依赖首尾字母、单词的整体形状以及句子的上下文。锚定两端能保留这些线索,而内部顺序变成噪声,你的大脑从周围单词补上缺口。一旦锚点移动,这种效应就迅速崩塌:取消勾选「保留首尾」,可读性会急剧下降,这是在课堂上演示该原理的快捷方法。

课堂与谜题用途

打乱器是阅读和拼写活动的快捷生成器。老师可以粘贴词汇表,打乱它,然后把练习纸发给学生去还原;因为短词保持完整,句子保留了刚好够用的脚手架,仍可解出。谜题制作者打乱一句名言,让读者重建它,依靠锚定的首字母让长词仍可辨认。写作小组用它展示字母顺序瓦解时还有多少意义得以保留,这是一次令人印象深刻的、关于上下文驱动阅读的演示。取消勾选「保留首尾」可得到更难的变体,或改用简短熟悉的句子以降低难度。

准确性与局限

  • 打乱不是加密,也不是安全措施。肉眼即可轻易还原,对敏感文本不提供任何保护。
  • 随机性来自浏览器的 Math.random,用于文字游戏没问题,但不是密码学安全的。
  • 算法基于单词,不感知语言。它没有词典,因此无法选出能产生真实单词的排列。
  • 超长输入会同步处理,段落是瞬时的,但多兆字节的文本可能短暂卡顿。
  • 因为空白和换行被精确保留,列表和缩进这类格式能在往返后存活。
  • 重复字母会限制变化。像 letter 这样的单词只有很少几种不同的内部排列,所以重新打乱可能返回与上一次接近的结果。
  • 工具从不在单词之间添加、删除或交换字母;它只就地排列每个单词的内部。
  • 处理在主线程上运行。段落是瞬时的,但粘贴一份超大文档时,输入框可能在打乱期间短暂冻结。

相关工具

常见问题

每次点击按钮,打乱后的文本都会不一样吗?

会。中间字母每次运行都会用一个新的随机排列重新洗牌,所以连按两次通常会得到两个不同的字符串。三个字母或更短的单词永远不会改变,因为没有中间部分可打乱。

为什么 the、cat 这样的短词原封不动?

打乱器会原样返回字母核心为三个字符或更短的单词。首尾字母被锚定后,一个三字母词只剩一个内部字母,洗牌也无法改变什么。

工具如何处理撇号、连字符和引号?

开头和结尾的标点会被识别并粘回原位,所以 does 不会丢掉末尾的逗号。内部标点则与字母归为一组一起移动,因此缩略词里的撇号可能落到不同位置。

它能打乱中文、希腊文或西里尔文吗?

不能。字母检查只识别 a–z、A–Z 以及 Latin-1 和 Latin Extended 范围。CJK、西里尔文、希腊文、阿拉伯文等文字不匹配,因此那些单词会原封不动地通过打乱器。

用什么算法打乱字母?

Fisher-Yates 洗牌,单遍即可产生无偏排列。对于四个字母以上且中间至少有两个不同字母的单词,代码最多重试十次,以避免返回原来的拼写。

「保留大小写」复选框会改变输出吗?

实际上不会。洗牌移动的是整个字符,所以每个字母落到哪里都保持自身大小写;该复选框存在于界面中,但不会改变任何字母的大小写。首尾字母被锚定,保持原大小写。

由 HandyTools Hub 团队审校 · 最后更新