使用方法
- 文本框里服务端直出的示例是
Hello World 2026,结果区同时给出大写起的输出HeLlO wOrLd 2026。脚本还没执行时页面也不是空白,点「重置」可随时回到这句示例。 - 回车留给换行,触发转换要用 Ctrl 键或 Command 键加回车,也可以直接点「转换」;改动「起始大小写」下拉或「每行重置计数」勾选框都会立刻重算。
- 「起始大小写」决定第一个参与交替的字母是大写还是小写:选大写起,第 1、3、5…… 个字母变大写,第 2、4、6…… 个字母变小写;选小写起则反过来。
- 「每行重置计数」默认关闭,这时整段文本的字母从前到后连续编号;勾上后每到换行就重新从零开始编号,每一行都从「第一个字母」起算。
- 结果区给出本次采用的起始方式、输入字符数与参与交替的字母数;下方统计卡片细分出大写、小写、数字、空格与制表符、标点及其它、非 ASCII 字符的个数。
- 「长串对照表」列出十二个典型输入的期望输出,默认只显示前六行,点「加载更多」展开其余行;「复制对照表」复制制表符分隔的文本,「导出 CSV」下载带 UTF-8 BOM 的表格文件。
这个交替大小写转换器能解决什么问题
它回答的是一个很具体的改写需求:把一段文本里的拉丁字母按「一个大写、一个小写」的顺序重新赋值,得到 aLtErNaTiNg 这种大小写波浪的写法。典型用途是给昵称、密码提示、标语做视觉标记,或者在讲字符编码、讲正则匹配时当场造出大小写混合的样本。
与站内几个兄弟工具的分工要先分清:句子大小写转换把整句改成句首大写、其余小写;英文标题大小写转换按标题惯例处理虚词;驼峰大小写转换与 Snake 大小写转换面向变量命名;本页做的是第四件事——不看词、不看句子结构,只按字母出现的先后顺序决定大小写。
它也不等同于「切换大小写(toggle case)」:toggle 是把每个字母的大小写取反,本页是按位置重新赋值。两者的差别在 aBc 这类输入上刚好看不出来,但换成 ab 立刻分明——toggle 得到 AB,交替得到 Ab。想要「取反」的结果请用反色大小写转换器,想要「按位置交替」的结果用本页。
按字面说,本页只做逐字母的大小写重排这一件事。它不判断单词真假,不改动数字、空格与标点,也不对中文等非拉丁字符做任何处理。
计算原理与变量说明
算法只有一条主线:从头到尾扫描输入,维护一个「已经处理过的字母个数」计数器,遇到一个新字母时按计数器的奇偶决定它的大小写,然后把计数器加一;遇到非字母字符原样输出,计数器不动。下面三条机制决定它与「凭感觉写」的差别,最后一条说明它与另一件大小写工具的语义分界。
一、只数字母,不按字符位置计数。如果按下标(第几个字符)决定大小写,a-b 里 a 是第 0 个字符、b 是第 2 个字符,两个位置奇偶相同,会得到 A-b;而 ab 里 a 是第 0、b 是第 1,奇偶相反,会得到 Ab。同样是「两个字母中间隔了一个连字符」,两种口径给出的结果不同。本页把数字、空格、标点排除在计数之外,所以 a-b、a b、a1b 的字母都只有两个,交替节奏一致,分别得到 A-b、A b、A1b。这一条是最大分歧点:只要口径一致,任何人都能复算出同一结果。
二、多行是否重置计数应做成可选项。对同一段两行文本,第一行 alpha、第二行 beta,全篇连续编号时第一行用了 0 到 4,第二行接着用 5 到 8,第二行从「奇数位」起算,得到 bEtA;勾上每行重置后第二行重新从 0 起算,得到 BeTa。两个结果都「对」,区别只在你要的是整段连贯的波浪,还是一行一个波浪,所以本页把它做成勾选框而不是写死。默认全篇连续,是因为单行文本下两种口径结果相同;处理逐行清单或歌词时再勾上重置。
三、Unicode 的大小写映射会改变字符长度。拉丁字母里存在几个「一变大小写就变长」的字符:德语的 ß 转大写变成 SS,一个码元变两个;连字 fi 转大写变成 FI;带点的大写 İ 转小写变成 i 再加一个组合点。如果一个实现先把整串 toUpperCase()、再按原来的下标去替换,这些字符一变长,后面的位置全部跟着错位,输出会整体乱掉。本页逐个字符判断:只有字符落在 A 到 Z 或 a 到 z 之间时才改大小写,其余字符(含 ß、İ)原样拼回,因此输出长度恒等于输入长度,不会出现下标漂移。
四、与「切换大小写」的语义区别。交替操作的对象是「第几个字母」,toggle 操作的对象是「每个字母各自现在的状态」。两者对 ab 给出不同结果(Ab 与 AB);对 AbC,交替恰好还是 AbC,而 toggle 得到的是 aBc。理解这一点才能解释:同一个「想要大小写混合」的需求,用错工具会得到规则完全不同的结果。
变量说明。页面只有三个可调项:文本、起始大小写、是否每行重置。起始大小写用大写起或小写起表示;计数器只对 [A-Za-z] 递增;重置标志为真时在换行处清零。因为只改 ASCII 字母的大小写,输出与输入等长;字符数对不上,就说明实现动了不该动的字符。
完整示例(数值仅作演示)
示例条件:文本为服务端直出的 Hello World 2026,共 16 个字符,其中字母 10 个、数字 4 个、空格 2 个,「每行重置计数」保持关闭。
- 大写起:字母依次编号 0 到 9,偶数位变大写、奇数位变小写,得到
HeLlO wOrLd 2026。两个空格与数字 2026 原样保留。 - 小写起:偶数位变小写、奇数位变大写,得到
hElLo WoRlD 2026。首字母 H 从大写变成小写,是两种起始方式最直观的差别。 - 统计:大写字母 2 个(H、W),小写字母 8 个,数字 4 个(2、0、2、6),空格 2 个,标点与其它 0 个,非 ASCII 字符 0 个。
- 换成两行
alpha与beta:全篇连续得到AlPhA换行后接bEtA;勾上每行重置则第二行变成BeTa。 - 换成含汉字的
中文abc:汉字原样保留,三个字母参与交替得到中文AbC,结果下方会提示跳过了 2 个非 ASCII 字符。
上面每个输出都由页面自己的算法跑出,粘进同样的文本即可得到同样结果;页面里没有任何「看到某个输入就返回写死答案」的分支。
长串对照表(大写起,每行重置关闭)
下表是十二个典型输入的期望输出,可用来核对任何一份实现。默认显示前六行,其余六行点「加载更多」展开;「导出 CSV」会带 UTF-8 BOM,「复制对照表」复制制表符分隔的文本。
| 输入 | 期望输出(大写起) |
|---|---|
| hello | HeLlO |
| hello world | HeLlO wOrLd |
| JavaScript | JaVaScRiPt |
| rem to px | ReM tO pX |
| abcdefghij | AbCdEfGhIj |
| ABCDEF | AbCdEf |
| a1b2c3 | A1b2C3 |
| Hi! There? | Hi! ThErE? |
| 123456 | 123456 |
| space | SpAcE |
| mixedCASE | MiXeDcAsE |
| x | X |
结果边界、舍入与适用说明
- 输入为空或只有空白字符时给出明确提示,不会拿上一次的结果冒充本次输出。
- 输入超过 10 万字符时提示分段处理。本页不设固定长度上限,但超长文本逐字符处理会明显变卡。
- 非拉丁字符(汉字、日文假名、西里尔、希腊、阿拉伯字母以及带附加符号的拉丁字母)一律原样保留,并在结果下方说明跳过了多少个。
- 只改 ASCII 字母的大小写,输出与输入长度相同;如果发现长度变了,说明输入里出现了本页不处理的字符。
- 数字、空格、标点不占用交替编号,也不会被改写;增删它们只影响它们自己,不改变字母的大小写节奏。
- 「每行重置计数」只认换行符,回车与换行本身不参与字母计数,也不会被改写。
- 交替只改大小写、不改字符本身,结果可以直接选中复制。本页不做词义优化,也不按发音或专有名词规则调整,输出是纯位置结果。
常见问题
为什么 a-b 和 ab 的交替节奏要一致?
因为本页只对 [A-Za-z] 计数。连字符不是字母,不进计数器,所以 a-b 的两个字母仍是第 1、第 2 个,得到 A-b;若按字符下标算,b 就变成第 3 个字符,得到 A-B,与 ab 的 Ab 口径不一致。
数字会影响交替结果吗?
不会。数字不参与计数,也不被改写。a1b2c3 里只有 a、b、c 三个字母编号,得到 A1b2C3;0123456 这类纯数字串原样输出。把数字删掉或加上只改变它自己的呈现,不改变字母的大小写节奏。
「每行重置计数」什么时候该勾?
看你想要的视觉节奏。整段连贯的波浪(默认)适合单行昵称或一句话;逐行各自起算适合清单、歌词、逐行字段,每行都从大写起,行与行之间不会互相影响。两行 alpha 与 beta 就能看出差别:连续是 bEtA,重置是 BeTa。
输入中文为什么会原样输出?
汉字不是拉丁字母,没有「大写小写」的对应关系,本页只处理 a 到 z 与 A 到 Z。中文、日文假名、西里尔字母都会被原样保留并在结果下方提示跳过个数,不会报错。含汉字的 中文abc 会得到 中文AbC。
为什么 ß 这类字符没有被转换?
ß、İ、连字 fi 都不在 [A-Za-z] 范围内,本页按原样保留。这不是遗漏,而是刻意的:它们的大小写映射会改变字符长度(ß 转大写是 SS),一旦参与交替,后续位置都会错位。把它们排除在外,换来的是输出与输入永远等长。
它和「切换大小写」有什么区别?
切换大小写(toggle)是把每个字母各自取反,ab 得到 AB;本页按字母出现的位置重新赋值,ab 得到 Ab。对 AbC,本页恰好还是 AbC,toggle 却得到 aBc。需要「取反」请用反色大小写转换器。
这个工具免费吗?
免费,无需注册即可使用。
输入的数据安全吗?
安全。计算在当前浏览器本地完成,不会上传输入内容。