Aggiungere numeri di riga
Metta un numero davanti a ogni riga di codice, log, testi o appunti: alpha, beta e gamma diventano 1. alpha, 2. beta e 3. gamma. Scelga il suo separatore o il numero iniziale per continuare un elenco. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- alpha beta gamma
- Ingresso
- alpha beta gamma
- Separatore
- .
- Inizio
- 1
- Conteggio righe
- 3
Uno strumento per aggiungere numeri di riga trasforma un incolla grezzo di codice, log, testi o note in un elenco numerato stabile da condividere in ticket, compiti e revisioni. Inserisca qualsiasi stringa non vuota a una o più righe; lo strumento normalizza gli a capo Windows e Mac classico, divide a ogni interruzione di riga e prefissa ogni segmento con un intero sequenziale più il separatore scelto—per impostazione predefinita un punto e uno spazio così lo stile familiare 1. appare senza configurazione extra. Lo start opzionale consente di continuare un elenco da zero, uno o qualsiasi intero nell'intervallo pubblicato. Sviluppatori, insegnanti, agenti di supporto e pipeline di contenuti necessitano di quella stessa numerazione deterministica senza aprire un IDE completo.
Come funziona la numerazione sequenziale delle righe
La numerazione di riga è uno dei più antichi aiuti di leggibilità in programmazione e scrittura tecnica: ogni riga visiva riceve un'etichetta intera così le persone possono indicare “riga 17” senza citare metà del documento. Questa capacità implementa quella regola quotidiana su testo semplice anziché su pagine PDF o paragrafi di word processor. Prima l'input è controllato: text assente, valore non stringa, o stringa vuota dopo il trim degli spazi è rifiutato così gli incolla vuoti non sembrano mai un successo.
Gli a capo sono normalizzati così Windows CRLF, vecchio Mac CR e Unix LF diventano una sola forma LF prima dello split. Lo splitter poi spezza la stringa su ogni LF; ogni segmento risultante—compresi i segmenti vuoti tra a capo consecutivi—è una riga e riceve il proprio numero. Il primo numero è il valore intero start (predefinito uno), e ogni riga successiva incrementa di uno.
Tra il numero e il contenuto originale della riga lo strumento inserisce la stringa separator, che di default è un punto seguito da uno spazio così l'output si legge come un elenco numerato classico. Può passare un separatore diverso come due punti e spazio, una parentesi di chiusura, una pipe o un marcatore tipo tab, purché il separatore resti entro il limite di caratteri pubblicato.
Quando le servono totali di paragrafi anziché etichette per riga, usi un contatore di paragrafi per righe vuote; quando le servono timbri di pagina PDF, usi una capacità di numerazione pagine PDF. Questa landing riguarda solo il prefisso di numeri sequenziali su righe di testo semplice.
Consigli pratici, limiti e quando usare questo strumento
Usi questa capacità quando l'intento di ricerca è aggiungere numeri di riga, numerare righe online o numerazione sequenziale di righe per testo semplice. Incolli uno snippet di codice, un estratto di log, una poesia o una checklist, converta una volta e inserisca il blocco numerato in un ticket, e-mail o form di feedback studente. Tenga presenti gli a capo finali intenzionali: un LF finale crea un ultimo segmento vuoto che riceve comunque un numero, il che corrisponde a come molti editor trattano gli a capo di fine file.
Le righe singole estremamente lunghe contano ancora come una riga ciascuna; lo strumento non va a capo per larghezza di caratteri. Le sorgenti HTML e Markdown sono numerate come stringhe grezze; rimuova il markup prima se vuole solo righe di prosa visibili. Questa landing non è un timbro di pagina PDF, non è un contatore di paragrafi, non è un contatore di parole o caratteri e non è uno strumento di diff che inventa hunk.
Preferisca la numerazione di pagine PDF quando il documento è un PDF binario multi-pagina; preferisca un contatore di paragrafi quando gli esseri umani hanno separato idee con righe vuote e le serve solo il totale; preferisca questa capacità quando i revisori devono citare indici di riga esatti in testo semplice. Nell'insegnare la code review, numeri lo stesso snippet due volte con separatori diversi così gli allievi vedono come le etichette restano stabili mentre la presentazione cambia.
Casi d'uso
Code review e segnalazioni di bug
Incolli uno stack trace o uno snippet, aggiunga numeri di riga stabili e citi “riga 12” nei ticket senza condividere un intero repository.
Preparazione di compiti e schede
Gli insegnanti numerano versi di poesie o elenchi di esercizi così gli studenti rispondono per numero di riga su quiz e schede.
Estratti di log per passaggi di supporto
Gli agenti di supporto numerano incolla di log multi-riga prima di escalare così gli ingegneri puntano alla riga esatta in errore.
Domande frequenti
Come sono definite le righe?
Dopo aver normalizzato CRLF e CR a LF, il testo è diviso su ogni LF. Ogni segmento—compresi quelli vuoti tra a capo consecutivi—riceve un numero sequenziale.
Posso cambiare il separatore o il numero iniziale?
Start deve essere un intero da 0 a 1,000,000; separator è limitato a 32 caratteri.
Questo numera pagine PDF?
No. Numera solo righe di testo semplice. Usi uno strumento di numerazione pagine PDF quando le servono timbri su pagine PDF.
Lo strumento numeri di riga è gratis?
Lo strumento browser è gratis e gira in locale.
Anche le righe vuote ricevono un numero?
Sì. Ogni riga vuota tra due a capo viene numerata, così i numeri corrispondono a ciò che vede in un editor. Un a capo finale aggiunge anche un'ultima riga vuota numerata.
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/number-lines \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"alpha\nbeta\ngamma"}'const res = await fetch("https://api.kit.forhosting.com/str/number-lines", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "alpha\nbeta\ngamma"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/number-lines",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "alpha\nbeta\ngamma"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/number-lines", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"alpha\\nbeta\\ngamma"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"alpha\nbeta\ngamma"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/number-lines", 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": "alpha\nbeta\ngamma"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.number_lines",
"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 |
max_separator_chars | 32 |
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 un chiaro errore invalid_input così l'automazione non tratta mai un form vuoto come un file a zero righe riuscito. Il percorso è logica pura di stringa—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 che la si chiama.
Come chiamare l'API e cosa contiene la risposta
Preferisca inviare il corpo grezzo del documento con i suoi veri a capo piuttosto che pre-unire tutto in una riga quando vuole etichette multi-riga vere. Invii un corpo JSON con un campo stringa obbligatorio text (alias input, value, string, s, content e body). Opzionalmente includa separator (alias sep e delimiter) come stringa di al massimo trentadue caratteri, e start (alias from, offset e begin) come intero tra zero e un milione incluso. Il valore text deve essere non vuoto dopo il trim degli spazi e non superare centomila caratteri così una singola richiesta non esaurisce la memoria del Worker o del browser su incolla enormi. In caso di successo la risposta ecoa input come la stringa originale inviata, text come la stringa di lavoro ritagliata, separator e start come le opzioni effettive di numerazione, line_count come il numero di segmenti numerati, lines come un array ordinato di stringhe di riga completamente prefissate, numbered come quelle righe unite con LF, e message come un breve riepilogo che indica quante righe sono state numerate e con quale start e separator. La validazione fallita—text assente, valore non stringa, payload eccessivo, contenuto vuoto dopo il trim, separator non stringa o troppo lungo, o start non intero o fuori intervallo—restituisce invalid_input e non viene mai addebitata. Il prezzo è un $0.002 fisso per richiesta riuscita con unità item e prezzo marginale unitario zero. In integrazione, asserisca su numbered o lines per l'elenco completo, su line_count per il totale, e tratti invalid_input come bug del client per invii di form vuoti piuttosto che come evento di fatturazione.
Consigli pratici, limiti e quando usare questo strumento
I controlli andata-ritorno per i test sono semplici: alimenti tre righe corte separate da LF e si aspetti line_count tre con prefissi a partire da uno e il separator predefinito; cambi start a dieci e si aspetti dieci, undici, dodici; invii deliberatamente 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, il che mantiene economiche la validazione dei form e i test negativi CI.
Domande tecniche
Cosa succede con input vuoto?
text assente, valori non stringa o stringhe vuote dopo il trim restituiscono invalid_input e non sono mai addebitati.