命名格式转换工具

在 camelCase、PascalCase、snake_case、kebab-case、CONSTANT_CASE、标题式等命名风格之间互相转换,正确处理缩写。

所有处理均在你的浏览器内完成,数据不会上传。

小驼峰 camelCase
大驼峰 PascalCase
下划线 snake_case
短横线 kebab-case
常量 CONSTANT_CASE
点分 dot.case
路径 path/case
标题式 Title Case
句子式 Sentence case
全大写 UPPERCASE
全小写 lowercase

缩写会被完整保留:HTTPResponse 转成 http_response,而不是 h_t_t_p_response。

全大写与全小写作用于你输入的原文,保留标点与换行;其余风格会先把文本重新拆成词。

使用方法

  1. 粘贴任意风格的文本——一句话、camelCase、snake_case 都可以。
  2. 所有风格一次全部转换,不需要选择。
  3. 点你需要的那一行的复制按钮。

关于命名风格

所有命名约定都只是同样两个决定:词与词之间用什么分隔,以及每个词怎么大小写。 snake_case 用下划线连接并全部小写;PascalCase 不用分隔符并让每个词首字母大写。 只要文本已经被拆成词,任意两种风格之间的转换都是机械的。

真正难的是拆词,而区分「能用」与「不能用」的正是缩写这一情形。HTTPResponse 包含两个词, 但 HTTPResponse 之间并没有「小写转大写」的跳变可作为边界——那里是大写接大写, 而这种情况在 HTTP 内部同样存在。行之有效的规则是:在「后面跟着小写字母的大写字母」之前 断开,这样边界恰好落在正确的位置,缩写也保持完整。

各风格用在哪里,更多是惯例而非技术必然。Python 与 Rust 用 snake_case 命名函数和变量; JavaScript 与 Java 用 camelCase 命名它们、用 PascalCase 命名类;CSS 与 URL 偏好 kebab-case,部分原因是下划线在 URL 里历来别扭,还可能被下划线样式盖住。常量几乎在所有 地方都是 CONSTANT_CASE。遵循所在项目的既有惯例,比争论哪种更好重要得多——一个混用多种 风格的代码库,消耗的注意力比任何单一风格都多。

常见问题

缩写是怎么处理的?

作为一个整体保留。HTTPResponse 会拆成 HTTP 与 Response,转成下划线式得到 http_response。朴素的实现遇到每个大写字母就断,会得出 h_t_t_p_response——能否正确处理缩写,正是可用与不可用的分水岭。

可以从任意风格转换,而不只是普通文本吗?

可以。工具会先把输入拆成词,所以你粘贴的是 camelCase、snake_case、kebab-case 还是一句普通的话都无所谓,任意两种风格之间都能双向转换。

为什么全大写保留了标点,下划线式却没有?

因为它们是两种不同的操作。全大写与全小写作用于你写下的原文——标点、换行统统保留;而编程用的那些风格会把文本重新拆成词再拼接,必然会丢掉非单词字符。对各自的用途来说,这都是应有的行为。

camelCase 和 PascalCase 有什么区别?

只差首字母。camelCase 首字母小写(userName),PascalCase 首字母大写(UserName)。惯例因语言和命名对象而异:JavaScript 与 Java 用 camelCase 命名变量、PascalCase 命名类,而 Go 用首字母大写来表示该标识符对外导出。

标题式里哪些词保持小写?

短小的功能词——冠词、连词和短介词,比如 a、an、the、of、and、to、in——但位于首尾时一律大写。这遵循《芝加哥格式手册》的常见简化规则。不同风格指南在细节上并不一致,尤其是四个字母以上的介词。

非英文文本能用吗?

带重音的拉丁字母可以正确处理,caféMenu 会拆成 café 与 Menu。中日韩文字没有大小写之分,这些字符会原样通过。