Detector de caixa de identificadores
Digite um nome do seu código e veja qual convenção ele segue: getUserName é camelCase e se divide em get, user e name. Também reconhece PascalCase, snake case, kebab-case e a versão em maiúsculas, sempre devolvendo as palavras em minúsculas. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Texto
- getUserName
- Identificador
- getUserName
- Estilo de capitalização
- camelCase
- Palavras
- get, user, name
- Contagem de palavras
- 3
Ferramentas de renomeação, linters de estilo e pipelines de transformação de código não conseguem reescrever um símbolo até saber qual convenção esse símbolo já usa. Cada estilo esconde as fronteiras de palavra em um lugar diferente: maiúsculas internas, sublinhados ou hífens. Este detector de caixa de identificadores inspeciona um único identificador, nomeia a convenção e devolve as palavras componentes em minúsculas para que quem chama possa reconstruir o mesmo nome em outro estilo sem adivinhar. O algoritmo é uma varredura determinística de caracteres: sem modelo, sem rede e sem relógio.
O que significa detectar a caixa de um identificador e como cada estilo é reconhecido
A caixa de nomenclatura de um identificador é a convenção com que uma comunidade de linguagem de programação cola várias palavras em inglês em um único símbolo. camelCase começa com uma letra minúscula e marca cada palavra seguinte com uma maiúscula, por isso getUserName se lê como get, user e name quando as maiúsculas são tratadas como fronteiras.
Este detector também informa três extras honestos que as ferramentas de renomeação encontram todos os dias: lower para um token minúsculo único como user, upper para um token maiúsculo único como OK, e mixed quando sublinhados, hífens e maiúsculas internas se combinam em um mesmo símbolo, por exemplo get_userName. A classificação olha primeiro os separadores e depois a capitalização. Um nome que contém ao mesmo tempo sublinhados e hífens é mixed.
Partes minúsculas separadas por hífen são kebab-case. Sem separadores, uma minúscula inicial mais uma maiúscula posterior é camelCase, e uma maiúscula inicial mais uma minúscula posterior é PascalCase. O propósito da página é a detecção mais uma lista estável de palavras, não a conversão: já existem conversores dedicados para transformar uma frase em um estilo de destino.
Perguntas frequentes
Quais caixas de nomenclatura de identificadores este detector reconhece?
Nomes de um só token devolvem lower ou upper. Separadores combinados ou capitalização mista devolvem mixed.
Como as palavras componentes são produzidas a partir de um identificador?
O motor corta em sublinhados e hífens e depois nas bordas camelCase (minúscula ou dígito para maiúscula, acrônimo para Titlecase e letra para dígito). Os tokens ficam em minúsculas no array words.
O que acontece com um sublinhado inicial como em _foo_bar?
O campo identifier ainda ecoa a grafia original, e os buracos vazios de dunder não são mantidos como palavras.
Qual a diferença entre camelCase e PascalCase?
Só a primeira letra. O camelCase começa com minúscula, como getUserName, e o PascalCase começa com maiúscula, como HttpServer. Os dois marcam cada palavra seguinte com uma letra maiúscula em vez de um separador.
A ferramenta converte o nome para outro estilo?
Não. Ela informa o estilo atual e devolve as palavras em minúsculas, como get, user e name. Com essa lista você reconstrói o mesmo nome em outra convenção sem adivinhar onde cada palavra terminava.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/identifier-case-detect \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"getUserName"}'const res = await fetch("https://api.kit.forhosting.com/dev/identifier-case-detect", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "getUserName"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/identifier-case-detect",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "getUserName"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/identifier-case-detect", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"getUserName"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"getUserName"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/identifier-case-detect", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"text": "getUserName"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.identifier_case_detect",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_chars | 4096 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Um identificador como getUserName é camelCase; UserProfile é PascalCase; http_status_code é snake_case; content-type é kebab-case; e MAX_RETRY_COUNT é SCREAMING_SNAKE_CASE. Identificadores vazios, ausentes ou ilegais falham com invalid_input em vez de uma divisão vazia silenciosa. Chamadas de API bem-sucedidas são cobradas a US$ 0,002; falhas de validação não são cobradas.
O que significa detectar a caixa de um identificador e como cada estilo é reconhecido
PascalCase, também chamado UpperCamelCase, começa com maiúscula e é o formato habitual de nomes de tipo, componentes React e classes C#: HttpServer é http mais server. snake_case escreve todas as letras em minúsculas e une as palavras com um único sublinhado, o padrão de funções Python, métodos Ruby e muitas colunas SQL. kebab-case faz o mesmo trabalho com hífens e aparece em classes CSS, slugs de URL e nomes de cabeçalho HTTP como content-type. SCREAMING_SNAKE_CASE é snake_case em maiúsculas completas e fica reservado a constantes e chaves de ambiente como MAX_RETRY_COUNT. Partes minúsculas separadas por sublinhado são snake_case; as mesmas partes em maiúsculas são SCREAMING_SNAKE_CASE. Sublinhados iniciais usados para privacidade ou dunders de Python são removidos antes de nomear o estilo, de modo que _foo_bar continua snake_case e __init__ continua snake_case, enquanto o identificador devolvido ainda ecoa a grafia original.
Contrato de entrada, divisão em palavras e comportamento de erro
O comprimento está limitado a quatro mil e noventa e seis caracteres: uma colagem mais longa falha com uma mensagem explícita de limite em vez de um corte silencioso. O identificador deve começar com uma letra, um sublinhado ou um cifrão e, em seguida, usar apenas letras ASCII, dígitos, sublinhados ou hífens. Hífens iniciais ou finais e hífens consecutivos são rejeitados porque não são nomes legais nas linguagens para as quais esta ferramenta foi feita. Pelo menos uma letra é exigida: um token feito só de dígitos ou símbolos não tem caixa de nomenclatura a detectar. Envie por POST um corpo JSON com um campo obrigatório, text, contendo o identificador a inspecionar. Os aliases identifier, name, value e input são aceitos para que planilhas, cadeias de consulta e formulários tipados reutilizem o mesmo contrato sem renomear uma coluna. O valor deve ser uma string não vazia após o recorte; números, booleanos, objetos e arrays são rejeitados para que um corpo JSON enganado não vire a palavra true nem um despejo de objeto. Em caso de sucesso, o corpo devolve cinco campos estáveis. identifier ecoa a entrada recortada para que você possa auditar o que foi classificado. case_style é um de camelCase, PascalCase, snake_case, kebab-case, SCREAMING_SNAKE_CASE, lower, upper ou mixed. words é o array ordenado de tokens em minúsculas após cortes em sublinhados, hífens, uma borda de minúscula ou dígito para maiúscula, um acrônimo seguido de uma palavra Titlecase, e bordas letra-dígito ou dígito-letra, de modo que XMLHttpRequest vira xml, http e request, e getUser2FA vira get, user, 2 e fa. word_count é o comprimento desse array. readable une as palavras com espaços simples para rótulos e registros. Não há capitalização de título específica do idioma nem um sucesso parcial que descarte tokens sem avisar. text ausente, uma string vazia e um conjunto ilegal de caracteres falham com invalid_input nomeando o campo; essas falhas não são cobradas.
Onde ferramentas de renomeação, linters e migrações usam um detector de caixa
Uma refatoração de renomeação é insegura se a ferramenta assume que todo símbolo já está em camelCase. Geradores de documentação transformam a frase legível em títulos e rótulos de acessibilidade e ainda conhecem a convenção original para os vínculos cruzados. A validação falha não consome saldo. Mantenha os pedidos em um identificador, fixe o array words nos testes e você obtém uma classificação reproduzível para pipelines de renomeação, regras de lint e checagens de sala de aula sem montar um gerador de analisadores próprio. Bases de código de interface misturam componentes React em PascalCase, hooks em camelCase, módulos CSS em kebab-case e constantes de ambiente em SCREAMING_SNAKE_CASE; um detector que devolve o estilo e as palavras permite que um transformador reconstrua getUserName como get_user_name ou GetUserName sem que uma pessoa aponte cada arquivo. Migrações de servidor enfrentam a mesma divisão entre funções Python em snake_case, cabeçalhos HTTP em kebab-case e tipos Java em PascalCase quando um documento OpenAPI, um modelo ORM e um SDK de cliente precisam permanecer alinhados. Linters de estilo e robôs de revisão podem marcar uma função que chegou como Http_Server em vez de adivinhar se o autor queria snake_case ou PascalCase. Professores e plataformas de entrevista de programação podem pedir a um estudante que nomeie o estilo de dez identificadores e corrigir a resposta contra este oráculo em vez de uma macro de planilha que trata UserID e user_id como a mesma string. Como a implementação é parse puro de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída, e o caminho gratuito do navegador coincide com a API byte a byte no mesmo módulo.
Casos de integração
Pipelines seguros de renomeação e transformação
Classifique cada símbolo antes de reescrevê-lo para que um transformador passe de camelCase para snake_case ou PascalCase sem assumir o estilo de origem.
Regras de lint em bases de código mistas
Sinalize funções, tipos, classes CSS e constantes que chegaram na convenção errada comparando case_style com a regra daquele tipo de símbolo.
Oráculos para documentação e sala de aula
Separe identificadores em palavras legíveis para títulos e corrija respostas de estudantes que nomeiam camelCase, snake_case ou SCREAMING_SNAKE_CASE.
Perguntas técnicas
Qual entrada é rejeitada como inválida?
text ausente, uma string vazia, valores que não são strings, nomes com espaços ou outros caracteres ilegais, hífens iniciais ou finais, hífens consecutivos, tokens sem letra e cargas com mais de quatro mil e noventa e seis caracteres falham com invalid_input.
Quanto custa o detector de caixa de identificadores?
A ferramenta do navegador é gratuita. Pedidos de API usam saldo pré-pago do KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.