Convert text to camelCase

camelCase joins your words into a single identifier where the first word is lowercase and every following word starts with a capital. Paste user profile data and get userProfileData. The engine splits on spaces, dashes, underscores, and existing camel boundaries, so messy input still produces a clean identifier. For an upper-first variant, see PascalCase; for snake or kebab styles, see snake_case and kebab-case.

Input
Line 1:1 LF cloud_done Saved locally
Result camelCase
0 lines 0 chars

Identifiers for JavaScript, Java, and most APIs

camelCase is the identifier style used in JavaScript, Java, Swift, Kotlin, and most JSON APIs: the first word is lowercase and every following word starts with a capital, with no separators between words. user profile data -> userProfileData. The format is compact and fits any language that bans hyphens and dots in identifiers.

The engine first tokenises your input by replacing underscores and dashes with spaces, splitting on lowercase-to-uppercase transitions (so userProfileData is treated as three tokens, not one), lowercasing everything, and splitting on whitespace. The result is a clean array of lowercase words with no empty entries. The first word is then output as-is, and every subsequent word has its first letter uppercased.

For programming-language style guides: JavaScript and TypeScript use camelCase for variables, parameters, and most function names. Java uses it for fields and methods. Swift and Kotlin use camelCase for properties and methods. Most REST APIs use camelCase for JSON keys. Pair this tool with PascalCase (classes, types) and CONSTANT_CASE (constants) for a full identifier-style conversion set.

How to use convert text to camelcase

  1. 1Paste or type your phrase into the input panel on the left.
  2. 2The camelCase identifier appears in the output panel on the right as you type.
  3. 3Mixed input is fine: USER PROFILE, user-profile, user_profile, and userProfile all produce userProfile.
  4. 4Click Copy in the output header to paste the identifier into your code.
  5. 5For class names, switch to PascalCase; for snake or kebab variants, see the related tools below.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun a saved workflow Plus

What this tool actually does

Word boundary detection

The tokeniser handles four kinds of separators: underscores (user_profile), dashes (user-profile), whitespace (user profile), and lowercase-to-uppercase transitions (userProfile). All four are recognised, so any common naming style as input gives the same output.

Already-formatted input round-trips

Pasting userProfileData back in still produces userProfileData. The lowercase-to-uppercase split picks up the existing word boundaries, so the conversion is idempotent on identifier-style input.

First word stays lowercase

After tokenising, the first word is emitted as tokens[0] (already lowercased by the tokeniser), and each subsequent word has its first letter uppercased. Empty input produces an empty string.

Digits stick to the previous word

Digits do not cause a split, so user2 profile becomes user2Profile. If you want digits split out (user 2 profile -> user2Profile still), no extra config is needed because the tokeniser already collapses adjacent letter+digit groups.

Pairs naturally with the case family

Sibling tools share the same tokeniser. Run the same input through PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, or Train-Case for the same word boundaries in different formats.

Worked example

Spaces, dashes, and shouty caps all collapse to the same camelCase result. The tokeniser lowercases each word first, so USER ID becomes userId with the first word lowercase and the rest capitalised.

Input
user profile data
fetch-user-by-id
USER ID lookup
Output
userProfileData
fetchUserById
userIdLookup

Settings reference

Input camelCase output
user profile userProfile
user-profile userProfile
user_profile userProfile
USER PROFILE userProfile
UserProfile userProfile (lowercase-to-uppercase split picks up the boundary)
user2 profile user2Profile (digits stick to their word)

FAQ

How is camelCase different from PascalCase?
camelCase keeps the first word lowercase (userProfile); PascalCase capitalises it (UserProfile). Most languages use camelCase for variables and methods, PascalCase for classes and types.
Will it handle dashes and underscores?
Yes. The tokeniser collapses underscores, dashes, whitespace, and lowercase-to-uppercase transitions into the same set of word boundaries. user_profile, user-profile, and user profile all produce userProfile.
What happens to digits?
Digits stick to whatever word they're next to. user2 profile becomes user2Profile. user 2 profile becomes user2Profile as well, since the tokeniser will lowercase and join lone digits to adjacent words.
Is the conversion idempotent?
Yes. Pasting userProfileData back in produces userProfileData. The lowercase-to-uppercase split picks up the existing word boundaries, so a second run is a no-op.
How do I convert to snake or kebab style instead?
Use snake_case for underscores, kebab-case for dashes, CONSTANT_CASE for upper-snake, dot.case for dots, or Train-Case for capitalised dashes. All share the same tokeniser, so input handling is consistent.