String Case Converter
Paste one identifier and get every naming case at once (camelCase, snake_case, kebab-case, PascalCase, CONSTANT_CASE and more), each with its own copy button.
About String Case Converter
Renaming an identifier is one of those small chores that interrupts real work: you have a variable in camelCase but the database column wants snake_case, a class name that needs to become a kebab-case file, or a label you want as a CONSTANT_CASE environment variable. Doing it by hand is error-prone, and most converters force you to pick one target case, copy it, then come back and pick another. This string case converter takes a different approach: you paste one word, identifier, or phrase and it renders every common naming convention at once (camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, Train-Case, Title Case, Sentence case, lowercase, and UPPERCASE), each on its own row with its own copy button, plus a copy-all that exports tab-separated pairs for a spreadsheet.
The part that makes the output trustworthy is an acronym-aware tokenizer. Instead of naively splitting on capital letters, it understands runs of capitals the way you mean them: getHTTPResponse splits into get, HTTP, Response, and oauth2Token splits into oauth2, Token (digits stay bound to the token on their left). The tool shows you those detected word boundaries as chips, so you can confirm the split before you trust the result. Two extra controls cover the awkward cases: an accent-fold toggle strips diacritics (café becomes cafe, Łódź becomes Lodz) so you get clean ASCII slugs and identifiers, and a per-line batch mode converts a whole column of names independently in a single pass. Everything runs in your browser. Nothing you paste is uploaded.
How to use the String Case Converter
- Paste or type an identifier, variable name, or phrase into the input box.
- Read every naming case in the output as it updates live. There is no submit button.
- Check the "Detected words" chips to confirm the acronym and word split is what you expect.
- Click the copy button on any single case, or use Copy all to grab every case as tab-separated label/value pairs.
- Turn on Fold accents to strip diacritics (café → cafe) when you need clean ASCII slugs or identifiers.
- Turn on Batch to paste a whole column of names and convert each line independently in one pass.
Common Use Cases
Map API and database fields between snake_case and camelCase
JSON APIs and JavaScript code usually use camelCase, while SQL columns and many backends use snake_case. Paste a field name in either style, read the matching row, and copy it into your model, migration, or serializer without hand-editing each underscore or hump.
Generate environment variables and database column names from a label
Turn a human label like "Max Retry Count" into MAX_RETRY_COUNT for an environment variable or max_retry_count for a column. The CONSTANT_CASE and snake_case rows give you both at once, ready to paste into a .env file, a config schema, or a CREATE TABLE statement.
Turn a class or component name into a file name or slug
A PascalCase class such as UserProfileCard maps directly to a kebab-case file name (user-profile-card) for components, CSS classes, or URL slugs. Copy the kebab-case row and use it as the file name or route segment.
Migrate a list of legacy identifiers to a new style
When a codebase switches naming conventions, turn on Batch mode and paste a whole column of old identifiers. Each line is tokenized and converted independently, so you can copy the entire converted column in one pass instead of one name at a time.
Frequently Asked Questions
How do I convert camelCase to snake_case?
Paste the camelCase identifier (for example userId or getHTTPResponse) into the input. The tool tokenizes it and shows every case at once; read the snake_case row (user_id, get_http_response) and click its copy button. The reverse works the same way: paste snake_case and copy the camelCase row.
What is the difference between camelCase and PascalCase?
Both join words with no separator and capitalize the start of each word; the only difference is the first letter. camelCase starts lowercase (userProfile), while PascalCase (also called UpperCamelCase) capitalizes the first letter too (UserProfile). camelCase is common for variables and functions in JavaScript and Java; PascalCase is common for class names, types, and React components.
What is CONSTANT_CASE or screaming snake case?
CONSTANT_CASE (a.k.a. screaming snake case) makes every token uppercase and joins them with underscores, like MAX_RETRY_COUNT. It is the conventional style for constants and environment variables in many languages. Paste your label or identifier and copy the CONSTANT_CASE row.
How are acronyms like getHTTPResponse split?
The tokenizer is acronym-aware. In a run of capitals followed by a lowercase letter, the boundary falls one character before the last capital, so getHTTPResponse splits into get, HTTP, Response and parseURLFromString splits into parse, URL, From, String. A trailing acronym with nothing after it stays whole, so parseURL splits into parse, URL. The "Detected words" chips show you the split. Note that the readable cases (Title, Pascal, Train) re-case each token, so HTTP renders as Http there, while snake_case and kebab-case keep the run lowered (http).
How do I remove accents when making a slug?
Turn on the Fold accents toggle. It runs Unicode NFKD normalization and strips combining diacritic marks, so café becomes cafe and Łódź becomes Lodz. It removes accent marks rather than transliterating between scripts, so it will not turn ß into ss or convert Cyrillic to Latin. It is meant for producing clean ASCII slugs and identifiers from accented Latin text.
How do I convert a whole list of names at once?
Turn on Batch mode and paste one identifier per line. Each line is tokenized and converted independently, and every case row shows the per-line results stacked in the same order. Blank lines are skipped. The "Detected words" chips show the split for the first line as a representative example.