Contare paragrafi nel testo
Incolli tre paragrafi separati da righe vuote e otterrà 3 paragrafi da 6, 4 e 5 parole, 15 in totale. Le righe spezzate a mano restano nello stesso paragrafo e le righe vuote in più non creano paragrafi vuoti. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Redattori, editor, docenti e pipeline di contenuti spesso hanno bisogno di più di un semplice totale di paragrafi: serve un dettaglio di quante parole ci sono in ogni blocco separato da righe vuote per bilanciare la struttura del saggio, verificare le regole del compito o ripartire il lavoro tra traduttori. Questa capacità accetta testo semplice i cui paragrafi sono separati da righe vuote, conta ogni blocco non vuoto e restituisce il conteggio delle parole di ogni paragrafo in ordine. La usi quando l'intento di ricerca è contare paragrafi in un testo, parole per paragrafo o un analizzatore di paragrafi per riga vuota con un elenco chiaro di parole per blocco.
Come si definiscono i paragrafi per riga vuota e i conteggi di parole
Nel testo semplice un paragrafo è, per convenzione, un blocco di contenuto non vuoto separato dal successivo da almeno una riga vuota. Questo strumento segue quella definizione quotidiana anziché indovinare confini di frase, tag HTML o interruzioni tematiche di NLP. Le interruzioni di riga sono normalizzate così che CRLF di Windows, CR Mac legacy e LF Unix diventino un'unica forma LF prima della divisione.
Il divisore cerca una o più righe consecutive vuote o con soli spazi o tabulazioni; quelle sequenze sono le interruzioni di paragrafo. Ogni blocco rimanente è depurato dei bordi bianchi esterni; se resta qualcosa di non spazio, conta come un paragrafo. Righe vuote iniziali, finali e doppi o tripli spazi tra blocchi non creano mai paragrafi vuoti, così un documento che inizia con due righe vuote inizia comunque a contare dal primo blocco reale.
Un unico blocco lungo solo con hard wrap —nuove righe ma senza riga vuota— resta un paragrafo anche se copre molte righe visive. Ciò coincide con il modo in cui la maggior parte delle guide di stile e degli editor Markdown trattano la prosa quando gli autori separano le idee con una riga vuota. Il conteggio delle parole usa tokenizzazione per spazi: ogni sequenza di caratteri non spazio in un paragrafo è una parola, così la punteggiatura attaccata a un token resta con quel token.
Quando usare questo strumento e consigli pratici
Usi questa capacità quando l'intento di ricerca è contare paragrafi in un testo, parole per paragrafo online o un analizzatore gratuito di paragrafi per riga vuota con dettaglio parole per blocco. Incolli una bozza di saggio, converta una volta e mostri a studenti o editor sia il totale dei paragrafi sia la lunghezza di ogni blocco accanto a un obiettivo di lunghezza.
Tenga presenti gli hard wrap a interlinea singola: le righe unite solo da una nuova riga restano un paragrafo, corretto per testo rifluito e sbagliato solo se intendeva ogni riga visuale come paragrafo proprio —in tal caso inserisca prima righe vuote o usi un contatore di righe. Sorgente HTML e Markdown con tag conta ancora le righe vuote nella stringa grezza; rimuova il markup prima se vuole solo blocchi di prosa.
Questa pagina non è un contatore puro di frasi, né uno strumento di statistiche pagine PDF, né un segmentatore tematico NLP che inventi interruzioni senza righe vuote. Preferisca un contatore solo di parole quando servono metriche aggregate senza struttura; preferisca questa capacità quando le persone hanno già separato le idee con righe vuote e servono il totale e le parole di ogni blocco.
Nell'insegnare la struttura della scrittura, confronti lo stesso testo con e senza righe vuote affinché chi apprende veda come la spaziatura definisce i confini di paragrafo e come la massa di parole si distribuisce tra le sezioni.
Casi d'uso
Struttura dei saggi e controllo dei compiti
Gli studenti incollano prosa in bozza; docenti o script LMS confermano totali di paragrafi e parole per paragrafo rispetto alle regole del compito prima della consegna.
Domande frequenti
Cosa succede se il testo è vuoto?
Stringhe vuote o solo spazi sono rifiutate e non addebitate, così un invio vuoto non sembra mai un successo.
Le righe con hard wrap senza riga vuota contano come più paragrafi?
No. Le semplici nuove righe in un blocco restano nello stesso paragrafo. Solo le interruzioni per riga vuota creano un nuovo confine di paragrafo.
Le righe vuote in più creano paragrafi vuoti?
No. Le righe vuote all'inizio o alla fine, e le spaziature doppie o triple tra i blocchi, non generano mai paragrafi vuoti. Anche le righe che contengono solo spazi o tabulazioni contano come vuote.
Come vengono contate le parole di ogni paragrafo?
Ogni sequenza di caratteri tra due spazi è una parola, quindi la punteggiatura attaccata resta con la sua parola. Sommando i valori di tutti i paragrafi si ottiene il totale delle parole del documento.
Cambia qualcosa se il testo arriva da Windows, Mac o Unix?
No. I diversi tipi di fine riga vengono uniformati prima di dividere il testo, quindi lo stesso documento dà lo stesso numero di paragrafi ovunque sia stato scritto.
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/count-paragraphs \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"First paragraph with five words here.\n\nSecond block has four words."}'const res = await fetch("https://api.kit.forhosting.com/text/count-paragraphs", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "First paragraph with five words here.\n\nSecond block has four words."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/count-paragraphs",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "First paragraph with five words here.\n\nSecond block has four words."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/count-paragraphs", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"First paragraph with five words here.\\n\\nSecond block has four words."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"First paragraph with five words here.\n\nSecond block has four words."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/count-paragraphs", 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": "First paragraph with five words here.\n\nSecond block has four words."
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.count_paragraphs",
"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_chars | 100000 |
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'input vuoto o solo spazi è rifiutato con invalid_input affinché l'automazione non tratti mai un incolla vuoto come uno zero di successo. L'algoritmo è pura logica sulle stringhe —senza rete, senza semi casuali, senza dipendenza dall'orologio— così l'esecutore gratuito del browser e l'API prepagata restituiscono lo stesso JSON ogni volta.
Come si definiscono i paragrafi per riga vuota e i conteggi di parole
Prima si valida l'input: testo mancante, valore non stringa o stringa vuota dopo il trim degli spazi viene rifiutato con un errore chiaro. Sommare words_per_paragraph produce total_words per l'intero documento.
Contratto di input, forma della risposta e prezzi
In caso di successo la risposta ripete input come la stringa originale inviata e text come la stringa di lavoro ritagliata. Un breve messaggio riassume quanti paragrafi e parole sono stati contati. Preferisca inviare il corpo grezzo del documento anziché collassare in anticipo le interruzioni di riga se vuole la semantica reale delle righe vuote; collassare tutto su una riga forzerebbe un solo paragrafo. Invii un corpo JSON con un campo stringa obbligatorio text (alias input, value, string, s, content e body). Il valore deve essere una stringa non vuota dopo il trim e non superare centomila caratteri, così una sola richiesta non esaurisce la memoria del Worker o del browser con incolla enormi. Restituisce paragraph_count e count come lo stesso totale intero di blocchi per riga vuota, total_words come la somma delle parole di tutti i paragrafi, words_per_paragraph come un array ordinato di interi (una voce per paragrafo), paragraphs come le stringhe di blocco ordinate dopo la divisione, e details come un array di oggetti con index da uno, text e word_count per tabelle leggibili. La validazione fallita —testo mancante, valore non stringa, payload eccessivo o contenuto vuoto dopo il trim— restituisce invalid_input e non viene mai addebitata. Il prezzo è un fisso di $0.002 per richiesta riuscita con unità item e senza prezzo unitario marginale. In integrazione, affermi su paragraph_count e words_per_paragraph per i controlli di struttura, confronti opzionalmente total_words con la somma dell'array per paragrafo, e tratti invalid_input come errore client sui form vuoti e non come evento di fatturazione.
Quando usare questo strumento e consigli pratici
I controlli andata e ritorno per i test sono semplici: fornisca due righe corte separate da una riga vuota e si aspetti paragraph_count due con due conteggi di parole; fornisca un blocco ininterrotto e si aspetti un paragrafo; invii di proposito stringa vuota o spazi per confermare invalid_input e il messaggio che chiede una stringa non vuota. Le attività fallite che restituiscono invalid_input non consumano saldo prepagato, mantenendo economici la validazione dei form e i test negativi CI.
Casi di integrazione
CMS e passaggi di traduzione
Divida note di rilascio o bozze di blog multi-blocco, affermi paragraph_count e allochi il carico ai traduttori con words_per_paragraph prima della pubblicazione.
Test unitari per processori di testo
Generi fixture multiparagrafo note con array di parole attesi e rifiuti di input vuoto per editor, parser di e-mail e pipeline Markdown.
Domande tecniche
Come si contano i paragrafi in un testo?
Invii una stringa non vuota in text. L'API divide sulle righe vuote (una o più righe vuote o solo spazi), scarta i blocchi vuoti e restituisce paragraph_count più words_per_paragraph per ogni blocco.
Come si contano le parole in ogni paragrafo?
Ogni sequenza di caratteri non spazio in un paragrafo è una parola. words_per_paragraph elenca quegli interi in ordine; total_words è la loro somma.
Quanto costa contare i paragrafi in un testo?
Lo strumento del browser è gratuito. Le richieste API usano saldo KIT prepagato a $0.002 per chiamata riuscita; l'input non valido non è addebitato.