Inserir texto em uma posição exata
Insira «beautiful » na posição 6 de «Hello world» e receba «Hello beautiful world», com 21 caracteres. Nada é sobrescrito, a posição 0 é o começo e um emoji conta como uma única posição. 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
- Hello world
- Texto a inserir
- beautiful
- Posição
- 6
- Resultado
- Hello beautiful world
- Comprimento original
- 11
- Comprimento inserido
- 10
- Comprimento do resultado
- 21
Inserir texto em uma posição adiciona uma string exatamente onde você indicar dentro de um texto existente. Informe o texto original, o conteúdo a acrescentar e uma posição de caractere baseada em zero; o resultado preserva todos os caracteres originais e coloca o novo conteúdo entre os caracteres de cada lado desse índice. É útil para montar modelos, adicionar rótulos ou separadores, corrigir conteúdo gerado e fazer edições precisas em fluxos repetíveis. Os caracteres Unicode são contados de modo consistente, portanto emojis e outros caracteres fora do alfabeto latino básico não ocupam duas posições inesperadamente.
Escolha o ponto exato de inserção
As posições são baseadas em zero: a posição 0 insere antes do primeiro caractere. A posição 1 insere depois do primeiro e antes do segundo, enquanto uma posição igual ao comprimento do texto original acrescenta a string escolhida no fim. Por exemplo, Hello world tem um espaço na posição 5 e a letra w na posição 6.
Inserir beautiful na posição 6 produz Hello beautiful world. Nada é sobrescrito: a operação divide o original no limite solicitado, coloca a inserção entre as duas partes e as une novamente. Essa definição torna o comportamento previsível em scripts e editores visuais.
Ao selecionar uma posição por programa, lembre-se de que o intervalo permitido inclui as duas extremidades, de zero até o comprimento em caracteres. Uma posição negativa ou além do limite final é rejeitada, em vez de ajustada silenciosamente, evitando uma edição no local errado. A resposta repete a posição aplicada e informa os comprimentos original, inserido e resultante para que um fluxo automatizado possa conferir a alteração.
Trabalhe com segurança com texto Unicode
Esta capacidade conta pontos de código Unicode, e não unidades UTF-16 do JavaScript. A diferença importa quando o texto contém emojis, escritas históricas ou símbolos menos comuns. Um emoji pode ocupar duas unidades UTF-16 internas, mas aqui é tratado como uma posição, portanto a inserção não divide seu par substituto nem cria texto corrompido.
A mesma regra de contagem vale para os comprimentos original, inserido e resultante. Marcas combinantes e sequências complexas de emojis ainda podem conter vários pontos de código, mesmo que a fonte as mostre como um único agrupamento visual; isso é uma propriedade do Unicode. Se as posições vierem de outro sistema, confirme que ele também conta pontos de código.
Deslocamentos em bytes, índices UTF-16 e índices de grafemas são coordenadas diferentes. Manter esse sistema explícito é particularmente importante quando modelos transitam entre navegadores, bancos de dados e serviços de backend, pois evita desvios sutis de posição e faz transformações repetidas produzirem o mesmo resultado em qualquer ambiente.
Monte modelos e fluxos de edição precisos
A inserção exata é uma operação pequena que se torna poderosa quando combinada com outras etapas. Um fluxo de documentos pode inserir o nome de uma conta após uma saudação fixa, adicionar um identificador antes da extensão de um arquivo ou colocar uma cláusula gerada em um limite encontrado por um analisador anterior. Como o texto existente é preservado, esta ferramenta é diferente de uma substituição: não existe termo de busca nem intervalo selecionado a remover.
Ela funciona melhor quando seu fluxo já conhece o limite correto. Valide esse limite quando o conteúdo anterior puder mudar, porque inserir ou excluir caracteres antes dele deslocará a posição adequada. Em modelos reutilizáveis, marcadores estáveis geralmente são mais fáceis de manter do que deslocamentos fixos; após localizar um marcador, o índice pode ser enviado para a inserção.
Texto de inserção vazio é aceito como uma operação deliberada sem efeito, simplificando fluxos condicionais. A função é determinística e não usa rede, aleatoriedade ou horário atual, portanto entradas iguais sempre geram saídas iguais.
Casos de uso
Complete um modelo de texto
Insira o nome de um cliente, número de referência ou frase gerada em um limite conhecido, preservando exatamente o modelo ao redor.
Adicione um sufixo ao arquivo
Coloque uma versão ou marcador de idioma logo antes da extensão depois que outra etapa determinar sua posição.
Aplique edições precisas de conteúdo
Acrescente pontuação, anotações, separadores ou palavras ausentes ao conteúdo gerado sem buscar e substituir o texto existente.
Perguntas frequentes
A posição começa em zero ou em um?
Ela começa em zero. A posição 0 insere antes do primeiro caractere, e o comprimento original acrescenta no fim.
A inserção substitui algum texto existente?
Não. Todos os caracteres originais são preservados, e a string escolhida é acrescentada no limite solicitado.
Como os emojis são contados?
Posições e comprimentos usam pontos de código Unicode; um emoji suplementar conta como um ponto, não como duas unidades UTF-16. Símbolos complexos podem conter vários pontos.
Posso inserir no início ou no fim?
Sim. Use a posição 0 para prefixar texto ou o comprimento original para acrescentá-lo no fim.
O que acontece se a posição passar do fim do texto?
A inserção é recusada em vez de ser movida sem aviso, então uma edição nunca cai no lugar errado. As posições válidas vão de 0 até o comprimento do texto, e usar o próprio comprimento acrescenta no final.
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/insert-at-position \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello world","insert_text":"beautiful ","position":6}'const res = await fetch("https://api.kit.forhosting.com/str/insert-at-position", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello world",
"insert_text": "beautiful ",
"position": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/insert-at-position",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello world",
"insert_text": "beautiful ",
"position": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/insert-at-position", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello world","insert_text":"beautiful ","position":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello world","insert_text":"beautiful ","position":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/insert-at-position", 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": "Hello world",
"insert_text": "beautiful ",
"position": 6
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.insert_at_position",
"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.
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
Monte modelos e fluxos de edição precisos
Use o navegador para edições interativas ou a API por US$ 0,002 por solicitação.
Perguntas técnicas
O que acontece quando a posição é inválida?
Uma posição negativa, fracionária ou fora do intervalo retorna um erro invalid_input, sem alterar nem limitar o valor.