Case converter for code identifiers
Runs locallycamelCase, snake_case, kebab-case and nine more — one name or a whole list.
Names
One identifier or phrase per line
“XMLHttpRequest” in every case
xmlHttpRequestXmlHttpRequestxml_http_requestXML_HTTP_REQUESTxml-http-requestXml-Http-Requestxml.http.requestxml/http/requestXml Http RequestXml http requestxml http requestXML HTTP REQUESTConvert the whole list
xmlHttpRequestuserIdfirstNamegetV2ItemsshippingAddressLine1orderCreatedAtçaVaDéjàConverting case is really about finding word boundaries
Joining words is easy; finding them is the hard part. "user_id", "userId", "UserID" and "user-id" have to become the same two words before they can become anything else, and a naive splitter that breaks on every capital turns "XMLHttpRequest" into x, m, l, http, request. This converter treats a run of capitals followed by a lowercase word as an acronym and a separate word, so it comes out as xml, http, request.
Digits stay attached to the word before them (utf8, v2, line1). That keeps version suffixes and numbered fields intact through a round trip, which is what you want when renaming database columns or mapping JSON keys to struct fields. The detector also tells you which convention the first line already uses, which helps when you are auditing a file with mixed styles.
Mixed input, one per line
XMLHttpRequest user_id first-name SHIPPING_ADDRESS_LINE_1
Converted to camelCase
xmlHttpRequest userId firstName shippingAddressLine1
| Convention | Typical home |
|---|---|
| camelCase | JavaScript and Java variables, JSON keys in most web APIs |
| PascalCase | Classes, types, React components, C# members |
| snake_case | Python, Ruby, SQL columns, Postgres identifiers |
| SCREAMING_SNAKE_CASE | Constants and environment variables |
| kebab-case | URLs, CSS classes, CLI flags, Kubernetes resource names |
| dot.case | Java properties and Spring configuration keys |
Where people get caught
Acronyms do not survive a round trip
XMLHttpRequest → xml_http_request → XmlHttpRequest. The capitals were information the snake_case form cannot hold. Style guides disagree on acronyms (Go wants URLID, Java prefers UrlId), so check the result.
Renaming a JSON key is an API change
Switching a response from user_id to userId breaks every client that reads it. Map at the boundary — a serializer naming strategy — rather than renaming stored data.
Case-insensitive systems merge names
Environment variables on Windows, MySQL table names on macOS and most SQL identifiers without quotes ignore case, so UserId and userid collide. Pick one convention per system.
About the case converter
How it works in 4 steps · 4 common use cases · 3 questions answered
About the case converter
How it works in 4 steps · 4 common use cases · 3 questions answered
How it works
- 1.Type or paste one name per line, or upload a text file.
- 2.The first line is shown in all twelve conventions, each with its own copy button.
- 3.Choose a target convention to convert every line of the list.
- 4.Copy the converted list or download it as a file.
Common use cases
- •Mapping database column names to object properties
- •Turning JSON keys into environment variable names
- •Renaming CSS classes or URL slugs consistently
- •Checking which convention a legacy file uses
FAQ
How are numbers handled?
A digit stays attached to the letters before it, so line1 and utf8 remain single words. A digit after a separator starts a new word.
Does it keep accented and non-Latin letters?
Yes. Letters and digits in any script count as parts of a word, so "Ça va déjà" becomes çaVaDéjà. Turn on Strip accents to get ASCII-safe names instead (caVaDeja), for code or systems that only accept A–Z.
Can I convert a whole file?
Yes. Upload or paste it; every non-empty line is converted on its own and blank lines are kept, so line numbers still match.