Testo a capo alla larghezza di riga
Imposti una larghezza di 40 e una frase lunga torna in 3 righe, nessuna oltre i 40 caratteri e senza parole tagliate a metà. I suoi a capo restano esattamente dove sono. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Larghezza
- 40
- Numero di righe
- 3
- Parola più lunga
- 6
È il classico algoritmo di word wrap fatto come si deve: goloso, deterministico, rispettoso delle parole e abbastanza onesto da rifiutare il lavoro quando una sola parola è più lunga della larghezza richiesta. Lei invia una stringa e un intero, e riceve il testo mandato a capo, le singole righe e alcuni conteggi utili.
Perché conta un ritorno a capo che rispetta le parole
La maggior parte delle superfici di visualizzazione impone un limite rigido di colonne: un terminale a ottanta colonne, un'email in testo semplice a settantadue, un blocco di commenti del codice a cento, una fattura stampata a quaranta. Ridistribuire il testo a mano è tedioso e soggetto a errori, e l'approccio ingenuo — tagliare la stringa ogni N caratteri — distrugge la leggibilità perché spezza le parole a metà.
La capacità di andare a capo a una larghezza di riga fa il lavoro correttamente con un algoritmo goloso: percorre le parole in ordine, aggiunge ciascuna alla riga corrente finché ci sta e apre una nuova riga quando la parola successiva traboccherebbe.
Le parole non vengono mai spezzate, la sillabazione non viene mai inventata e il risultato è stabile: lo stesso input e la stessa larghezza producono sempre un output identico byte per byte, il che la rende sicura nei test, nei documenti generati e in qualsiasi pipeline che confronti testo. Le interruzioni di riga esistenti sono preservate e ogni riga sorgente viene mandata a capo in modo indipendente, così i paragrafi preformattati mantengono la loro struttura.
Come si comporta l'algoritmo ai limiti
Il contratto è rigoroso dove il rigore La protegge. La larghezza deve essere un intero positivo e almeno pari alla parola più lunga del testo. Le sequenze di spazi collassano in spazi singoli, le righe vuote sopravvivono come righe vuote e l'output riporta la larghezza usata, il numero di righe prodotte e la lunghezza della parola più lunga incontrata, così Lei può registrare esattamente cosa è successo.
L'algoritmo misura la lunghezza in caratteri come li conta JavaScript, che è l'unità giusta per contesti di terminale e di codice a larghezza fissa.
Dove si inserisce in una pipeline
I team la chiamano ovunque venga generato testo a larghezza fissa: per formattare le note di rilascio in un file di changelog, mandare a capo i corpi dei messaggi di commit alle convenzionali settantadue colonne, preparare modelli di email in testo semplice, impaginare l'aiuto di un terminale o far rientrare le descrizioni nel budget di colonne di un PDF o di una fattura generati.
Gli input sono limitati a 500000 caratteri a richiesta, il che copre ampiamente qualsiasi documento realistico; i corpus più grandi vanno divisi a confini naturali, come i paragrafi, prima dell'invio. E poiché l'output include anche le righe come array, i passaggi successivi possono unirle con il proprio separatore, numerarle o confrontare due mandati a capo senza ridividere il testo.
Casi d'uso
A capo per messaggi di commit e changelog
Ridistribuisca i corpi in prosa al limite convenzionale di 72 colonne prima di scriverli in un repository o in un file di rilascio.
Formattare email in testo semplice
Mantenga le email generate dentro la classica busta di 78 colonne perché vengano visualizzate in modo pulito in qualsiasi client di posta.
Impaginare l'output di terminale e CLI
Mandi a capo l'aiuto e le descrizioni alla larghezza rilevata del terminale senza mai spezzare un flag o una URL a metà parola.
Domande frequenti
Quanto costa?
È anche gratuita nel Suo browser su questa pagina: lo stesso codice gira in entrambi i luoghi.
Cosa succede se una parola è più lunga della larghezza?
La capacità non spezza mai una parola per farla entrare.
Le interruzioni di riga esistenti sono preservate?
Sì. L'input viene prima diviso in righe e ogni riga viene mandata a capo in modo indipendente, così la struttura dei paragrafi sopravvive.
Sillaba le parole lunghe?
No. La sillabazione non viene mai inventata; le parole restano intere e la riga semplicemente si chiude prima.
L'output è deterministico?
Sì. L'algoritmo goloso non ha casualità, orologio o dipendenza dal locale, quindi input identici producono sempre output identici.
Quanto testo posso inviare?
Fino a 500000 caratteri a richiesta. Divida i documenti più grandi ai confini di paragrafo prima dell'invio.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/text/wrap-width \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"The quick brown fox jumps over the lazy dog while the sun rises slowly over the quiet hills.","width":40}'const res = await fetch("https://api.kit.forhosting.com/text/wrap-width", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "The quick brown fox jumps over the lazy dog while the sun rises slowly over the quiet hills.",
"width": 40
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/wrap-width",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "The quick brown fox jumps over the lazy dog while the sun rises slowly over the quiet hills.",
"width": 40
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/wrap-width", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"The quick brown fox jumps over the lazy dog while the sun rises slowly over the quiet hills.","width":40}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"The quick brown fox jumps over the lazy dog while the sun rises slowly over the quiet hills.","width":40}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/wrap-width", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "The quick brown fox jumps over the lazy dog while the sun rises slowly over the quiet hills.",
"width": 40
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.wrap_width",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 1 |
max_chars | 500000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
L'API di ritorno a capo prende qualsiasi testo semplice e una larghezza massima di riga, e restituisce il testo redistribuito in righe che non superano mai quella larghezza e non spezzano mai una parola. Nessuna approssimazione, nessuna sillabazione nascosta, nessuna sorpresa tra ambienti: lo stesso codice gira gratis nel Suo browser e dietro l'API a pagamento.
Come si comporta l'algoritmo ai limiti
Se una singola parola — diciamo una URL, un numero di serie o un composto lungo — supera la larghezza, la capacità rifiuta con un chiaro errore invalid_input che nomina la parola incriminata e la sua lunghezza, invece di emettere in silenzio una riga che viola il Suo limite. Questo rifiuto è deliberato: un documento mandato a capo che supera di nascosto il proprio budget di colonne rompe i layout a valle, e conviene scoprirlo alla fonte.
Dove si inserisce in una pipeline
Essendo una capacità di analisi pura, senza rete e senza modello, è veloce, economica a $0.002 a richiesta e abbastanza deterministica da stare dentro una suite di test.