Contatore di frasi
«Hello world. This is a second sentence! Is this a third?» dà 3 frasi, con una media di 18 caratteri ciascuna. Una serie come «!!!» conta come un solo finale, e anche l'ultima riga senza punto viene contata. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hello world. This is a second sentence! Is this a third?
- Numero di frasi
- 3
- Frasi
- 3
- Lunghezza media della frase
- 18
- Operazione
- sentence_count
Un contatore di frasi risponde a una domanda editoriale semplice: quante frasi ci sono in questo blocco di testo? Redattori, studenti, editor e team di prodotto usano quel numero per verificare obiettivi di leggibilità, stringere il copy di marketing, valutare esercizi a risposta breve e validare regole di lunghezza del contenuto prima della pubblicazione. Questa capacità scansiona il Suo testo semplice in cerca di punteggiatura terminale—punti, esclamazioni e interrogazioni—e restituisce un totale di frasi deterministico di cui può fidarsi negli script e nel modulo gratuito del browser. Sequenze dello stesso segno terminale contano come una sola fine, le virgolette di chiusura opzionali sono tollerate, e una clausola finale senza punto conta ancora così le note informali non sono sottocontate. L'ingresso vuoto o solo di spazi è rifiutato con un errore di validazione chiaro invece di uno zero silenzioso.
Come il contatore di frasi rileva le fine frase
Il rilevatore scorre il Suo testo semplice e tratta un confine di frase come una sequenza di caratteri di punteggiatura terminale dal insieme punto, esclamazione e interrogazione. Una sequenza come tre punti esclamativi o un interrogativo seguito da una sequenza di punti in stile ellissi resta una sola fine, così la punteggiatura drammatica non gonfia il totale. Virgolette o parentesi di chiusura subito dopo la sequenza terminale sono consentite e non avviano una nuova frase.
Dopo una fine, il successivo carattere non spazio inizia la frase seguente. Se la clausola finale del testo non ha alcuna marca terminale, quel frammento finale contribuisce ancora una frase, il che combacia con come si redigono messaggi e note a elenco senza chiudere ogni riga con un punto. Abbreviazioni come Doctor o Mister che usano un punto possono spezzare prima di quanto preferirebbe un editor umano; tratti il risultato come un totale rapido di punteggiatura terminale, non come un'analisi linguistica completa.
Per la valutazione in classe e i controlli di pipeline, questa onestà è un vantaggio: ogni client vede lo stesso insieme di regole.
Dove i conteggi di frasi compaiono nel lavoro reale
Coach di scrittura e lezioni di lingua alla scuola secondaria fissano obiettivi di numero di frasi per paragrafi e risposte brevi; un contatore condiviso allinea revisione tra pari e auto-valutatori. I content marketer misurano quanto denso sia un hero di landing o un blurb di prodotto prima di test A/B, perché tre frasi lunghe si leggono diversamente da otto corte anche a pari conteggio di parole. I team di localizzazione confrontano i totali di frasi sorgente e destinazione per intercettare clausole perse dopo la traduzione automatica.
Team di supporto e legali scorrono estratti di policy e modelli di ticket per mantenere risposte scansionabili. Gli ingegneri di prodotto vincolano campi di modulo, prompt di recensione ed esempi di addestramento chatbot con un minimo o massimo di frasi prima di accettare. Se in seguito Le serve un breakdown completo di parole e caratteri, un punteggio di leggibilità o un riassunto in una frase, li tratti come intenti di ricerca e landing distinti invece di sovraccaricare questa pagina incentrata sul contatore di frasi.
Casi d'uso
Obiettivi di frasi in temi e compiti
Verifichi che un paragrafo di studente raggiunga un minimo di frasi prima dell'invio, con lo stesso totale che calcolerà lo script dell'insegnante.
Controlli di densità sul copy di marketing
Conti le frasi in testo hero, annunci e aperture e-mail così le varianti brevi e lunghe restano entro le regole di leggibilità del brand.
Cancelli QA su traduzione e CMS
Confronti i totali di frasi sorgente e tradotti nelle pipeline per segnalare clausole perse o fuse prima della pubblicazione.
Domande frequenti
Come decide il contatore dove termina una frase?
Rileva la punteggiatura terminale: punti, esclamazioni e interrogazioni. Una sequenza di quei segni conta come una sola fine. Virgolette o parentesi di chiusura opzionali dopo la sequenza sono consentite. Una clausola finale senza marca finale conta ancora come una frase.
Cosa succede se invio testo vuoto?
Stringhe vuote e solo di spazi non sono ammesse; fornisca una stringa non vuota da contare.
Conta anche parole o caratteri?
No. Questa landing è incentrata sui totali di frasi. Per parole, caratteri, paragrafi e righe in una sola risposta, usi il contatore separato di parole e caratteri.
Le abbreviazioni sono gestite alla perfezione?
No. I punti nelle abbreviazioni possono sembrare fine frase. Lo strumento è un contatore deterministico di punteggiatura terminale, non un parser linguistico completo, così i risultati restano stabili tra i client.
Quanto costa?
Lo strumento nel browser è gratis e gira in locale.
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/str/sentence-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello world. This is a second sentence! Is this a third?"}'const res = await fetch("https://api.kit.forhosting.com/str/sentence-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello world. This is a second sentence! Is this a third?"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/sentence-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello world. This is a second sentence! Is this a third?"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/sentence-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello world. This is a second sentence! Is this a third?"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello world. This is a second sentence! Is this a third?"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/sentence-count", 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": "Hello world. This is a second sentence! Is this a third?"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.sentence_count",
"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.
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
Come il contatore di frasi rileva le fine frase
Stringhe vuote e solo di spazi sono rifiutate con invalid_input così i chiamanti non scambiano un incolla bianco per un documento a zero frasi. L'algoritmo è una scansione di stringa pura e deterministica: nessun seme casuale, nessun timestamp di orologio, nessuna chiamata di rete e nessun modello linguistico, così lo stesso ingresso produce sempre lo stesso JSON.
Cosa invia Lei e cosa riceve indietro
Invii un campo stringa obbligatorio chiamato text, o uno degli alias documentati come content, body, message o input. Il payload di esempio del contratto è un breve campione di tre frasi così il modulo gratuito e la sonda API condividono un caso di lavoro. In caso di successo la risposta ripete il text originale, restituisce sentence_count come totale principale, ripete lo stesso intero sotto sentences per i client che preferiscono un nome al plurale, e include average_sentence_length come lunghezza media in caratteri dei segmenti rifilati così nota a colpo d'occhio clausole insolitamente lunghe. Il campo operation è sempre la costante sentence_count per log e dashboard multi-strumento. Text mancante, stringhe vuote, solo spazi, sostituti numerici non finiti e oggetti che non sono stringhe falliscono con invalid_input e non sono addebitati. Payload molto grandi oltre il tetto di caratteri sono rifiutati con un messaggio di lunghezza chiaro così i worker restano limitati. Il prezzo delle chiamate API riuscite è la base pubblicata di $0.002 per elemento; i fallimenti di validazione non consumano saldo prepagato.
Dove i conteggi di frasi compaiono nel lavoro reale
Poiché questa capacità è un motore di parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la validazione fallita non consuma saldo.