Inverter a ordem dos parágrafos online
Uma introdução, os detalhes e uma conclusão voltam como conclusão, detalhes e introdução: 3 parágrafos em ordem inversa, cada um intacto por dentro, com as linhas quebradas incluídas. Linhas em branco marcam onde cada parágrafo termina. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Inverter a Ordem dos Parágrafos reorganiza um texto do último bloco para o primeiro sem inverter palavras, frases ou caracteres dentro de cada parágrafo. Cole um texto separado por linhas em branco e receba os mesmos blocos na sequência oposta, com espaçamento uniforme. As quebras internas continuam ligadas ao parágrafo, preservando citações, endereços, listas e trechos multilinha. A operação é determinística e local, útil quando um roteiro, rascunho, transcrição ou conjunto de notas foi exportado justamente na ordem errada.
Como a inversão dos parágrafos funciona
A ferramenta considera parágrafo qualquer bloco não vazio separado do próximo por uma ou mais linhas em branco. Primeiro, valida se o texto existe, é uma string, contém um caractere visível e respeita o limite de cem mil caracteres. Em seguida, normaliza as quebras de linha para produzir o mesmo comportamento em sistemas diferentes.
Uma linha vazia, inclusive contendo apenas espaços ou tabulações, define uma divisão; uma única quebra não divide o bloco. Assim, citações e textos quebrados visualmente permanecem unidos. A lista de parágrafos completos é copiada e invertida.
Nenhum parágrafo é lido de trás para frente, resumido ou reescrito. Por fim, os blocos são unidos com uma linha vazia. A resposta traz o texto pronto, a contagem detectada e uma lista estruturada dos parágrafos na nova ordem.
Decisões práticas, casos especiais e limites
Use esta capacidade quando os blocos estiverem corretos, mas a sequência estiver ao contrário: notas exportadas da mais recente para a mais antiga, respostas reunidas de baixo para cima ou seções copiadas de um roteiro invertido. Várias linhas vazias formam apenas uma divisão e não criam blocos vazios. Quebras simples ficam dentro do parágrafo; por isso, uma lista sem linhas em branco conta como um único bloco.
A ferramenta não interpreta HTML, Markdown, títulos, páginas, assuntos nem frases. Ela opera somente sobre divisões por linha em branco no texto simples. Remova a marcação antes se os elementos precisarem definir a ordem.
As quebras são normalizadas para LF e espaços externos são removidos. Revise referências como “acima”, “abaixo”, “primeiro” e “por fim”, pois a inversão estrutural não adapta essas expressões ao novo contexto.
Casos de uso
Reordenar notas cronológicas
Transforme uma exportação da mais recente para a mais antiga em leitura cronológica sem mudar cada nota.
Corrigir um rascunho invertido
Altere a sequência das seções sem mexer em frases, citações ou quebras internas.
Preparar fluxos de conteúdo
Receba texto unido e uma lista de parágrafos invertidos para CMS, testes e automações.
Perguntas frequentes
As palavras dentro do parágrafo são invertidas?
Não. Apenas a ordem dos blocos muda; palavras, frases e linhas internas permanecem iguais.
Como os parágrafos são detectados?
Uma ou mais linhas vazias separam os parágrafos. Uma linha só com espaços também é vazia.
As linhas vazias repetidas são preservadas?
Não. Elas formam um único limite, e a saída usa uma linha vazia entre blocos.
Por que nada mudou quando inverti o texto?
Provavelmente não há linhas em branco entre os parágrafos, então o texto inteiro é lido como um bloco só. Acrescente uma linha vazia entre cada parágrafo e tente de novo: os blocos vão trocar de lugar.
Como inverto cada linha em vez de cada parágrafo?
Aqui uma quebra de linha simples nunca divide um parágrafo, então as linhas de um bloco ficam juntas. Para inverter linha por linha, insira antes uma linha em branco entre elas ou use uma ferramenta que inverta a ordem das linhas.
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/str/reverse-paragraphs \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Introduction comes first.\n\nSupporting details come second.\n\nConclusion comes last."}'const res = await fetch("https://api.kit.forhosting.com/str/reverse-paragraphs", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Introduction comes first.\n\nSupporting details come second.\n\nConclusion comes last."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/reverse-paragraphs",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Introduction comes first.\n\nSupporting details come second.\n\nConclusion comes last."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/reverse-paragraphs", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Introduction comes first.\\n\\nSupporting details come second.\\n\\nConclusion comes last."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Introduction comes first.\n\nSupporting details come second.\n\nConclusion comes last."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/reverse-paragraphs", 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": "Introduction comes first.\n\nSupporting details come second.\n\nConclusion comes last."
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.reverse_paragraphs",
"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 | 100000 |
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
Como usar o resultado na API ou no navegador
Uma nota com introdução, detalhes e conclusão volta com a conclusão primeiro, os detalhes depois e a introdução por último. Use text para colar o resultado em um editor, salvar em um CMS ou encaminhar para outra operação. Preserve as linhas em branco porque elas definem os limites. Envie um objeto JSON com o campo text contendo todo o documento em texto simples. Use paragraphs quando precisar tratar cada bloco separadamente e paragraph_count para conferir o total. O navegador e a API executam a mesma função pura, evitando diferenças entre a prévia e a automação. Cada solicitação bem-sucedida da API custa US$ 0,002; dados inválidos retornam invalid_input. A função não utiliza rede, modelo de linguagem, aleatoriedade nem relógio, portanto entradas idênticas sempre geram o mesmo JSON.
Perguntas técnicas
O que acontece com apenas um parágrafo?
O resultado mantém o bloco, retorna paragraph_count igual a um e uma lista com um item.
Quanto custa uma solicitação da API?
Uma solicitação bem-sucedida custa US$ 0,002. Entradas inválidas retornam invalid_input.