24 converter 单位 · 货币 · 文件

文字转 camelCase 首词小写 免费 在线 安全

贴上一行,立刻读成 camelCase。全部在你的浏览器里完成——敲进去的东西不会被送到任何地方——而且规则跟的是本页的语言,不是英文。

换一种写法

首词小写,其余首字母大写
关于这种写法
它做什么 把一行切成词,第一个留作小写,之后每个词的首字母抬高,然后中间不加东西直接连起来。
它不做什么 标点不会保留。逗号、句号和破折号是词与词之间的边界,不是要带走的字符——这正是你给变量名想要的,而不是给散文想要的。
以及语言 切成词需要边界。中文和日文不用空格分词,所以这些文字写的一行会作为一个词返回——本页宁可这么说,也不愿在猜出来的地方下刀。
在哪里运行 在你的浏览器里。你在这里敲的东西不会被送到任何地方——草稿、密码、客户的名字,在这里和在文本编辑器里一样安全。

不上传任何文件

同一行,七种写法全在这里

写法 同一行,照那样写
大写CRÈME BRÛLÉE 两份 — STRASSE 17, FOOBAR
小写crème brûlée 两份 — straße 17, foobar
Title CaseCrème Brûlée 两份 — Straße 17, Foobar
snake_casecrème_brûlée_两份_straße_17_foo_bar
kebab-casecrème-brûlée-两份-straße-17-foo-bar
camelCasecrèmeBrûlée两份Straße17FooBar
一个 URL 地址creme-brulee-两份-strasse-17-foobar

这些写法从哪里来

大写字母和小写字母曾经是两套不同的字母。大写来自罗马,用凿子刻在石头上;小写源自加洛林小写体,由一支在羊皮纸上飞奔的笔塑成。印刷工把两者放在不同的字盘里——上面的一盘和下面的一盘——字盘早已不在,名字却留了下来。编程里的那些写法要年轻得多,它们被发明出来只为解决一件事:名字里不能有空格。snake_case 出自早期的 C,camelCase 出自 Smalltalk,kebab-case 出自 Lisp,而网址里的 slug 则出自一种需要:把一个供人阅读的标题放进一个不允许空格与变音符号的地址里。

你会在哪里遇到它们

每个词首字母大写属于标题和书籍封面;只有句首大写的写法属于其余几乎一切,并且越来越属于界面,因为读起来更快。snake_case 为数据库列和 Python 变量命名;camelCase 为 JavaScript 变量和 Java 方法命名;kebab-case 为 CSS 类名和网页项目中的文件名命名。slug 则是把一篇文章的标题变成地址最后一段的那个东西,也是此处唯一会被搜索引擎读到的转换。

常见问题

为什么转成大写有时会改变字母的个数?

因为大小写是语言的属性,而不是字符的属性。德语的 ß 转成大写是 SS,于是一个字母变成了两个。土耳其语有带点的 i 和不带点的 ı,而 i 的大写是 İ 而非 I——在这里弄错,一个土耳其词就变成了另一个词。本站的转换遵循各页自身语言的规则,所以同样的输入在土耳其语页面和英语页面上可能给出不同的结果。

slug 为什么要去掉变音符号和标点?

因为一个地址必须经得起被复制进消息、印在纸上、再用手重新敲一遍。带变音符号的字母在今天的网址里是合法的,但复制时会被百分号编码,一个本来可读的地址就变成了一串符号。把它们削减为朴素的字母、数字和连字符,地址才保持可读、好分享,并且无论出现在哪里都一模一样。

结果精确吗?

两个单位若以整数互相定义,那就是精确的——本页在数字上方说明了这一点,唯一的舍入在于显示多少位。若比值没有有限小数,本页给出十二位有效数字,并说明这个关系是近似的,而不是装作不是。

我敲进去的东西会离开我的设备吗?

不会。运算在你的浏览器里进行;没有任何东西被上传,也没有接收它的服务器。页面加载一次之后,断网也照样能用。

为什么要把文本转成 camelCase

打开几乎任何 JavaScript 文件、任何 Java 类、任何 Swift 或 Kotlin 源码,名字看起来都一样:userName、totalPrice、getCustomerById、isLoggedIn。单词连在一起,没有空格,没有分隔符,第一个小写,后面每一个都以大写字母开头,于是词中间的驼峰给了这种风格它的名字。这就是 camelCase(驼峰式),它是大多数 C 系语言为变量和函数选定的形式。把文本转成 camelCase,就是把人类书写的短语变成程序接受、程序员认得的名字。

粘贴一行,就能读到它的 camelCase 形式。转换在你的浏览器中进行,你输入的任何内容都不会发送到任何地方,规则遵循本页的语言而不是英语。它把这一行切成单词,让第一个保持小写,把后面每一个的首字母升为大写,并且中间什么也不放地连起来。下面你会看到本页究竟做什么、不做什么,它如何对待不同语言中那些棘手的字母,camelCase 与它的大写兄弟之间的区别,这种形式在哪里是惯例、在哪里不是,以及匆忙把文本转成 camelCase 的人容易掉进的陷阱。

转换做什么

切开,首个小写,后面大写,连接

本页首先把这一行切成单词。第一个单词保持小写。后面每个单词开头得到一个大写字母,其余为小写。然后单词之间什么也不放地连接起来。一行 Crème brûlée for 2 — straße 17, fooBar 会变成 crèmeBrûléeFor2Straße17FooBar。重音符号被保留,数字作为独立的单词存在,破折号和逗号消失了,而 fooBar(本页在它的大写处切开)在末尾又被重新拼成了 FooBar。

切口落在哪里

单词边界是空格、标点符号、破折号、符号,或词内从小写字母到大写字母的转换。所以 customer first name、customer-first-name、customer_first_name 和 customerFirstName 全都变成 customerFirstName。转换接受几乎任何起点,并且总是到达同样的形式,这使它成为名字进入代码之前可靠的最后一步。

复制结果

结果旁边的按钮把它复制到剪贴板。把它粘贴到需要这个名字的编辑器或文件里。

转换不做什么

它不保留标点

逗号、句点和破折号是单词之间的边界,而不是要带过去的字符。这正是变量名所需要的,却不是散文所需要的。一个句子经过本页会变成一个名字,而它的标点就消失了。

它不去掉重音

这一行保留它带重音的字母:crèmeBrûlée。许多语言允许它们出现在名字里,但很多工具和风格指南不允许。如果你需要纯字母,请先让短语经过 URL slug 页面,它会去掉拉丁字母上的符号,然后再把文本转成 camelCase。

它不检查名字是否合法

编程语言有它们自己的规则。名字不能以数字开头,也不能是保留字。像 2 for 1 这样的短语会变成 2For1,大多数语言在第一个字符就会拒绝它。本页造出形状;有效性由你来检查。

camelCase 与 PascalCase

同样的想法,不同的首字母

当第一个单词也以大写字母开头时,如 CustomerFirstName,这种风格叫作 PascalCase、UpperCamelCase 或 StudlyCaps。大多数语言的惯例是类型和类用 PascalCase,变量、函数和方法用 camelCase。本页生成的是首字母小写的形式。要得到 PascalCase,请先转换短语,再手动把第一个字母升为大写。

为什么首字母很重要

开头的大写字母告诉读者这个名字是一个类,而小写字母告诉读者它是一个实例或函数。在由工具强制执行惯例的语言里,例如 Go(大写表示公开),这种区别是含义的一部分。

语言很重要

不带空格书写的文字

切分成单词需要边界。中文和日文书写时不带空格,所以这些文字的一行会作为单个单词回来。本页宁可这样说明,也不在它猜测的地方切开,因为错误的切分会造出一个看似合理却意思错误的名字。

土耳其语与带点的 i

把每个单词的首字母升为大写,遵循本页语言的规则。在土耳其语里,i 的大写是 İ,而 ı 的大写是 I。套用英语规则的转换器会改变这些词。本页遵循它所使用的语言。

德语与尖音 s

词中间的德语 ß 保持不变,如 straße。大写的 STRASSE 回来时是 strasse,带双 s。

没有大写的文字

阿拉伯语、希伯来语和印度诸文字没有大写字母,所以单词只是被连接在一起。结果在这样的文字里是否可读,取决于你使用它的工具。

camelCase 在哪里是惯例

JavaScript 和 TypeScript

变量、函数和对象属性都用 camelCase 书写,大多数网页接口中 JSON 对象的属性也是如此。你为之把文本转成 camelCase 的短语,很可能是要用在这些地方之一。

Java、Kotlin、Swift、C# 和 Dart

局部变量和方法同样遵循这一习惯,类使用 PascalCase,在 C# 中方法和属性也使用 PascalCase。团队的风格指南会敲定细节。

来自网络服务的 JSON

许多 API 发送像 firstName 和 orderTotal 这样的键。如果你的数据起初是一张表,CSV 转 JSON 会把表头行变成键,而已转成 camelCase 的表头会变成代码无需括号和引号就能读取的键。反过来,JSON 转 CSV 把键写回成表头。

话题标签和账号名

在编程之外,驼峰式用于像 #SpringGardenTips 这样的话题标签,因为大写字母为眼睛标出单词边界。它对无障碍也更好:屏幕阅读器会把大写开头的话题标签读成分开的单词,而把一串小写字母读成一个古怪的单词。

它不是惯例的地方

Python、Ruby 和数据库

这些偏好下划线。对它们来说,snake_case 才是工具。

CSS 和网址

类名、自定义属性和地址使用连字符。请看 kebab-case。

散文和标题

camelCase 用于名字,不用于阅读。用它写的标题或句子很伤眼睛。对于标题,可以考虑 Title Case。

如何在这里把文本转成 camelCase

粘贴或输入你的文本

在第一个字段中输入短语。结果立刻出现在第二个字段中,所以你可以在输入时看着它变化。

检查切口和首字母缩写

看看单词在哪里被分开,以及首字母缩写是如何处理的。像 parseHtmlString 与 parseHTMLString 这样的名字是不同的惯例,本页全程应用一条规则。

复制它

按下复制按钮,把结果粘贴到你需要的地方。关于同一行的其他形式,请看下文。

同一行的全部七种写法

一张形式表

在转换器下方,一张表以本站提供的全部七种形式显示示例行:大写、小写、Title Case、snake_case、kebab-case、camelCase 和 URL slug。这是看清同样的词在每种形式中是什么样子的快速办法。

这些形式从何而来

两套字母表

大写字母和小写字母曾经是两套不同的字母表。大写字母是罗马式的,用凿子刻在石头上;小写字母源自加洛林小写体,由笔在羊皮纸上快速移动而成形。印刷工人把两者放在不同的字盘里,上盒和下盒,字盘早已不在,这些名称却保留了下来。

没有空格的名字

编程的形式要年轻得多,它们是为解决一个问题而发明的:名字里不能包含空格。snake_case 来自早期的 C,camelCase 来自 Smalltalk,kebab-case 来自 Lisp,而 URL slug 来自把人类的标题放进不允许空格和重音符号的地址的需要。在 camelCase 中,大写字母做着下划线或连字符在别处做的工作,标出一个单词在哪里结束、下一个在哪里开始。

更广阔工作流程中的 camelCase

从规格到代码

需求文档用句子写成,代码用名字写成。在两者之间,必须有人把每个名词和动词翻译成标识符。手动做既慢,又容易不一致:一位开发者为同一件事写 customerName,另一位写 clientName。如果团队约定从规格的确切措辞把文本转成 camelCase,名字就会跟着词走,任何人都可以通过搜索短语找到某个需求所指的代码。

从表头到对象的键

电子表格有 First Name、Order Total 和 Date Of Birth 这样的表头。一旦数据变成程序中的记录,这些表头就变成键。把每个表头转成 camelCase 得到 firstName、orderTotal 和 dateOfBirth,代码可以把它们作为属性读取,而不需要引号或括号。如果数据随后必须回到电子表格,JSON 转 XLSX 把键写成第一行,循环就闭合了。

从设计文件到组件

设计工具用平实的词给图层命名:Primary Button、Card Title。当开发者构建组件时,这些名字变成像 primaryButton 和 cardTitle 这样的标识符,或类名 primary-button 和 card-title。让映射保持明显,能使交接更顺畅。对于随图层而来的尺寸和颜色,px 转 rem 和 HEX 转 RGB 转换名字背后的数值。

搜索你命名的东西

一致的风格使搜索有效。如果每个属性都是 camelCase,搜索 orderTotal 就能找到所有用处,而搜索 ordertotal 或 order_total 则一无所获,这本身就很有信息量。混杂的风格把同一个想法分散在各种拼写中,让搜索看不见它。

安全地重命名

当名字改变时,应当由你编辑器里的重命名工具来做这项工作,而不是查找替换。在重命名之前,从新措辞把新名字转成 camelCase,这样新标识符从一开始就遵循惯例。然后让工具更新每一处引用。

在名字将要存在的地方测试几个

在你采用一批名字之前,在编辑器里、在它们将出现的代码行内试三四个。如果每个与其他的并排读起来都自然,这批名字就好。如果有一个刺耳,就改写短语并再次把文本转成 camelCase。简短的试用只花一分钟,却能避免对整个代码库的重命名。

读起来顺口的名字

函数以动词开头

函数是一个动作,它的名字应当这样说:getUserName、calculateTotal、isValid。当你为函数把文本转成 camelCase 时,让短语以动词开头。

值用名词

变量保存一样东西:userName、totalPrice、orderList。布尔值读起来最好像问题:isActive、hasAccess、canEdit。

对首字母缩写保持一致

有些团队写 parseHTML,有些写 parseHtml。两者都可以;混用则不行。选定一种并应用到每个名字上,你的代码会更容易搜索。

让名字可以读出来

你能大声读出的名字,就是你能讨论的名字。custFnDt 不是,而 customerFirstDate 是。转换保留你所写的,所以请写值得保留的东西。

把文本转成 camelCase 时的陷阱

以数字开头的名字

大多数语言拒绝它。请在前面加一个单词或一个字母。

保留字

像 class、new 或 default 这样的短语在许多语言中是关键字。本页不知道是哪些。使用名字之前请检查。

首字母缩写和连续的大写

连续大写字母周围的切口可能让你意外。请阅读结果并与你的惯例比较。

名字中的重音

有些语言允许,有些不允许。如果名字必须经过较老的工具,请先去掉重音。

人们在转换前问的问题

标点会怎样?

它被当作单词之间的边界,不会被带过去。

数字会保留吗?

会,作为独立的单词,与其余部分连在一起。

它能处理已经是 snake_case 或 kebab-case 的输入吗?

能。下划线和连字符是边界,所以 my_variable_name 变成 myVariableName。

我如何得到 PascalCase?

转换,然后手动把首字母升为大写。

我的文本会被上传吗?

不会。你在这里输入的内容从不发送到任何地方,所以草稿、密码或客户的姓名在这里和在文本编辑器里一样安全。

我如何改成得到下划线或连字符?

使用把文本转成 snake_case或把文本转成 kebab-case。

一个实例

假设你在写一个计算送货费的小脚本,而规格把这些值称为 delivery fee per kilometre、free delivery threshold 和 is express order。你依次转换每一个,读到 deliveryFeePerKilometre、freeDeliveryThreshold 和 isExpressOrder。第一个以名词开头,这对一个值是正确的;最后一个以 is 开头,标明这是一个是或否的标志。你把这三个作为变量名粘贴进脚本,规格和代码现在以同样的顺序使用同样的词,这使审查变得容易。

一份简短的清单

转换之前

用平实的词写下短语。函数以动词开头,标志以 is 或 has 开头。检查目标语言的保留字。

转换时

粘贴短语,查看切口,并确保名字以字母开头。

转换之后

检查长度和首字母缩写,并在每个需要的地方使用同一个名字。

常见错误

对人们要阅读的文本使用 camelCase

它是用于名字的,不是用于散文的。

在一个项目里混用惯例

为每一层选定 camelCase、snake_case 或 kebab-case,并坚持下去。

忘了目标允许什么

开头的数字、重音和保留字在不同语言之间各不相同。

你的文本留在你的设备上

转换在本地进行。你的文本由你自己的浏览器处理,没有任何内容被发送到任何地方。事后没有什么要删除的,也没有账户要创建。这就是把文本转成 camelCase 的朴素方式。

小结

要在这里把文本转成 camelCase,粘贴一行,读到它的结果:单词被切开,第一个小写,后面每个的首字母升为大写,全部中间什么也不放地连起来。已经写成 snake_case 或 kebab-case 的一行会在它的分隔符处被切开。本页不保留标点:逗号、句点和破折号是单词之间的边界,而不是要带过去的字符,这正是变量名所需要的,却不是散文所需要的。切分成单词需要边界,所以不带空格书写的中文和日文会作为单个单词回来。把首字母升为大写遵循本页的语言,所以土耳其语的 i 变成 İ。没有任何内容被上传。

长度与面积 质量与体积 温度 货币