🐫 Case Converter
Convert any string to camelCase / snake_case / PascalCase / kebab-case and more — all formats at once. Real-time.
🔗 Related Tools
📖 Where people get stuck
Convert strings between camelCase, snake_case, PascalCase, kebab-case and the rest. Everything runs in the browser. Case conversion is entirely a question of where the word boundaries are, and where that is not obvious — runs of capitals, the edge against a digit, mixed scripts — no two tools agree. Read the output before you use it.
| Case | What happens | What to do |
|---|---|---|
| Acronyms split, or refuse to | Turning parseHTTPResponse into snake_case gives parse_h_t_t_p_response in some implementations and parse_http_response in others. It is a difference in whether a run of capitals is read as one acronym or as separate letters, and neither reading is wrong. The reverse is equally undetermined: parse_http_response may come back as parseHttpResponse or parseHTTPResponse. |
The best fix is not to upper-case acronyms in code at all. The Google style guides and the .NET design guidelines both recommend capitalising only the first letter of an acronym longer than two characters: Http, Xml, Url. Under that convention a round trip through any converter survives. When converting existing code, grep out the identifiers containing acronyms first and check those by hand. |
| Digits split, or do not | In user2FA, oauth2Client or md5Hash, whether the digit is part of a word or a separator cannot be decided without knowing the meaning. Handle it mechanically and you get user_2_f_a or md_5_hash. Identifiers carrying a version number, such as apiV2Handler, have the same problem. |
Always diff the result of a bulk conversion. Pulling out the identifiers containing digits first narrows what you have to look at. When naming something new, spell it out rather than embedding a digit in a word — user_two_factor_auth rather than user_2fa — and it stays stable through any tool afterwards. Lining the before and after up in the text diff is the quickest check. |
| Clashing with the language convention | Which case to use is settled by convention per language: snake_case for functions in Python, Ruby and Rust; camelCase in Java, JavaScript and Go; PascalCase in C#; kebab-case for CSS class names and URL paths. The wobble happens at the boundaries — an API whose JSON keys are snake_case talking to a camelCase front end, with environment variables in SCREAMING_SNAKE_CASE alongside. | Concentrate the conversion at the boundary in exactly one place — the serialiser in your API client, or the mapping layer of your ORM — and never hand-convert cases at the call sites. Scattered manual conversions produce objects carrying both userId and user_id, with only one of them ever getting updated. |
There are places where changing the case changes the meaning. Filesystems are the classic: Linux is case-sensitive while macOS and Windows are not, by default. Rename Button.tsx to button.tsx and nothing happens locally, then CI on Linux fails with module not found. Git does not track that change by default either, so you need an explicit git mv Button.tsx button.tsx. In the same way, HTTP header names are case-insensitive but URL paths are not. Always know which kind of thing you are converting.
📖 How to Use
-
1
Enter your textType any text in the input field. Any format — spaces, snake_case, camelCase — is automatically recognized.
-
2
View all converted formatsAll 12 formats including camelCase, PascalCase, snake_case, and kebab-case appear in real time.
-
3
Copy the resultClick the copy button at the end of each row to copy that format to your clipboard.
❓ Frequently Asked Questions
Does it work with Japanese or Unicode characters?
What separators does it recognize?
How many formats are supported?
🐛 Found a bug or issue with this tool?
Free to use, no signup. Even just the steps to reproduce are helpful. Reports go directly to the operator and help us fix issues.
Thanks for your report!
Your report has been delivered to the operator and will be used to improve the tool.