Zeilen zählen
Hello, eine leere Zeile, World und ein abschließender Umbruch ergeben 4 Zeilen: 2 mit Inhalt und 2 leere. Zeilenenden von Windows, Unix und alten Macs werden erkannt, und jeder Umbruch zählt nur einmal. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- Hello World
- Gesamtzahl
- 4
- Nicht leer
- 2
- Leerzeilen
- 2
- Zeilen
- 4
Zeilen zu zählen ist ein kleines Hilfsmittel, das dennoch einen klaren Vertrag braucht: was als Zeilenumbruch zählt, ob ein abschließender Umbruch eine extra leere Zeile erzeugt, und wie nur aus Leerzeichen bestehende Zeilen klassifiziert werden. Dieser Zeilenzähler akzeptiert nicht leeren Text, teilt an Wagenrücklauf, Zeilenvorschub oder CRLF-Paaren und meldet dann Gesamtzeilen, nicht leere Zeilen mit mindestens einem Nicht-Leerzeichen, und leere Zeilen, die leer sind oder nach dem Trim nur Leerzeichen und Tabs enthalten.
Was Zeilenzählungen bedeuten und wie leer versus nicht leer entschieden wird
Eine Zeilenzählung beantwortet drei verwandte Fragen, die Menschen in die Suche tippen: wie viele Zeilen hat dieser Text, wie viele davon enthalten wirklich Inhalt, und wie viele sind leer. Diese Fähigkeit definiert eine Zeile als Segment zwischen Zeilenenden. Enden sind Wagenrücklauf, Zeilenvorschub oder das Windows-Paar Wagenrücklauf-plus-Zeilenvorschub, das als einzelner Bruch behandelt wird, damit eine CRLF-Datei nicht doppelt gezählt wird.
Nach dem Split wird jedes Segment klassifiziert. Eine Zeile ist nicht leer, wenn der Trim alle führenden und nachfolgenden Leerzeichen entfernt und etwas übrig bleibt—Buchstaben, Ziffern, Zeichensetzung oder andere sichtbare Zeichen. Eine Zeile ist leer, wenn das Segment leer ist oder nach dem Trim leer wird, was reine Leerzeichen, Tabs und völlig leere Zeilen zwischen Absätzen abdeckt.
Gesamt ist per Konstruktion gleich nicht leer plus leer, sodass Sie diese Identität in Tests assertieren können. Eine einzeilige Zeichenkette ohne Umbruch ergibt Gesamt eins und nicht leer eins, wenn sie Inhalt hat. Eine Zeichenkette, die mit einem Umbruch endet, erzeugt ein abschließendes leeres Segment, was dem entspricht, wie viele Editoren und Log-Tools am Dateiende eine extra leere Zeile zeigen.
Bevorzugen Sie diesen Zeilen-zählen-Rechner, wenn die Suchabsicht Zeilen im Text zählen, leere Zeilen zählen oder Gesamt nicht leerer Zeilen online ist. Nutzen Sie ihn nicht, wenn Sie Wortzählungen, Zeichenzählungen als primäres Produktversprechen oder Bytenlängen binärer Dateien brauchen—das sind andere Landings.
Praktische Einsätze und Grenzen des Zählers
Rufen Sie das kostenlose In-Browser-Zeilen-zählen-Werkzeug für Hausaufgaben-Checks, Paste-bin-Audits, Log-Vorschauen und schnelle Reviews leerer Zeilen auf, ohne wc zu installieren oder in jeder Sprache ein Skript zu schreiben. Ein typischer Workflow fügt Markdown-Entwurf ein, zählt leere Zeilen zwischen Abschnitten und strafft dann den Abstand vor dem Veröffentlichen. Koppeln Sie diesen Endpunkt mit Diff- oder Format-Werkzeugen, wenn der nächste Schritt ist, zwei Versionen Zeile für Zeile zu vergleichen, aber halten Sie Zeilen zählen als eigene Landing, damit die count-lines-Suchabsicht nicht mit vollen Dateistatistiken oder PDF-Seitenzählungen vermischt wird.
Erwarten Sie keine Wortzählung, Satzspaltung oder sprachbewusste Absatz-Erkennung—das sind getrennte Probleme mit getrennten SEO-Begriffen. Autoren, die SDKs ausliefern, können text als einziges Pflichtfeld dokumentieren und ein mehrzeiliges Erfolgsbeispiel plus ein Leerstring-Fehlerbeispiel zeigen, damit Integratoren beide Seiten des Vertrags sehen.
Anwendungsfälle
Abstandsprüfungen in Entwürfen und Markdown
Autoren und Redakteure fügen Entwürfe ein, um Gesamtzeilen versus leere Abstandszeilen zu sehen, bevor Blogposts oder README-Dateien veröffentlicht werden.
Log- und Support-Paste-Audits
Support-Tools zählen nicht leere Logzeilen in Kunden-Pastes und melden Rauschen leerer Zeilen ohne lokale Shell-Utilities zu installieren.
Häufige Fragen
Was passiert, wenn text leer ist?
Eine Zeichenkette der Länge null wird abgelehnt und nicht berechnet; nur-Leerzeichen-Text ist erlaubt und wird als leere Zeilen gezählt.
Zählt ein abschließender Zeilenumbruch als extra Zeile?
Ja. Text, der mit einem Zeilenumbruch endet, enthält ein abschließendes leeres Segment, daher steigt total um eins und blank um eins.
Wie werden CRLF und LF behandelt?
Wagenrücklauf, Zeilenvorschub und CRLF-Paare werden alle als Zeilenumbrüche behandelt. CRLF zählt als einzelner Bruch, damit Windows-Dateien nicht doppelt gezählt werden.
Gilt eine Zeile nur aus Leerzeichen als leer?
Ja. Eine Zeile ist leer, wenn sie nichts oder nur Leerzeichen und Tabulatoren enthält; jeder Buchstabe, jede Ziffer und jedes Satzzeichen macht sie zur Inhaltszeile. Ein Text nur aus Leerzeichen wird angenommen, alle Zeilen gelten dann als leer.
Ergeben gefüllte und leere Zeilen immer die Gesamtzahl?
Ja, immer, denn jede Zeile ist entweder gefüllt oder leer. Im Beispiel teilen sich 4 Zeilen in 2 mit Inhalt und 2 leere, so lässt sich jedes Ergebnis schnell gegenprüfen.
Was passiert bei leerem Text?
Ein völlig leerer Text wird mit einer klaren Meldung abgelehnt, damit nicht versehentlich eine leere Eingabe gezählt wird. Text, der nur aus Leerzeichen besteht, ist dagegen erlaubt und zählt als leere Zeilen.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/str/line-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello\n\nWorld\n"}'const res = await fetch("https://api.kit.forhosting.com/str/line-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello\n\nWorld\n"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/line-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello\n\nWorld\n"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/line-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello\\n\\nWorld\\n"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello\n\nWorld\n"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/line-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "Hello\n\nWorld\n"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.line_count",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Die Antwort ist stabiles JSON, das Sie in Tests pinnen, in Formulare legen oder aus SDKs aufrufen können, ohne in jeder Sprache einen weiteren One-Liner zu schreiben. Leere Eingabe scheitert mit invalid_input, damit Pipelines nie versehentlich Payloads der Länge null speichern.
Eingabevertrag, Ablehnung leerer Eingabe und Lesen der Antwortfelder
Nur aus Leerzeichen bestehender Text ist erlaubt: er ist keine leere Eingabe und meldet korrekt alle Zeilen als leer. Quelltext folgt denselben Aufbewahrungsregeln wie andere KIT-Parse-Items. Senden Sie einen JSON-Body mit dem Pflicht-String-Feld text auf die nicht leere Probe gesetzt, die Sie messen wollen. Aliase input, value, s, content und body werden akzeptiert, wenn ältere Clients oder Formular-Generatoren diese Namen nutzen. Fehlendes text, ein Nicht-String-Wert oder eine Zeichenkette der Länge null erheben invalid_input mit einer Meldung, die das Problem benennt, und diese Fehler werden auf der Prepaid-API nicht berechnet. Bei Erfolg enthält die Antwort total als Anzahl der Zeilensegmente, non_empty als Zählung der Inhaltszeilen, blank als Zählung leerer oder nur-Leerzeichen-Zeilen, und Komfort-Aliase lines gleich total, non_empty_lines gleich non_empty und empty_lines gleich blank, damit unterschiedliche SDK-Feldnamen ohne Extra-Kleber mappen. character_count ist die UTF-16-Länge der Originalzeichenkette für schnelle Größenprüfungen neben den Zeilenstatistiken. original spiegelt die exakte Eingabe, damit UIs Vorher-Nachher-Tabellen zeigen können, ohne den Payload neu zu speichern. method ist immer line_count, damit Downstream-Code verzweigen kann, ohne Formen zu erschnüffeln. Nutzen Sie total allein, wenn eine Fortschrittsleiste nur braucht, wie viele Zeilen existieren; nutzen Sie non_empty, wenn Abrechnung oder Bewertung leere Abstandszeilen ignorieren soll; nutzen Sie blank, wenn ein Styleguide oder linter-artiger Check leere Zeilen zwischen Blöcken betrifft. Halten Sie Payloads auf gewöhnlichen Nachrichten- und Dokumentgrößen, die für ein Worker-Isolat geeignet sind, statt Multi-Megabyte-Dumps; dieses Produkt ist ein Text-Utility, kein Massendatei-Lager.
API-Nutzung, Preise, Workflows und praktische Grenzen
Nutzen Sie die Prepaid-KIT-API, wenn ein CMS, Content-Pipeline, QA-Harness oder Mobile-Client denselben Vertrag unter Guthaben zu $0.002 pro erfolgreichem Item braucht; Validierungsfehler verbrauchen nie Guthaben, nachdem die Engine die Anfrage abgelehnt hat.
Integrationsbeispiele
CI- und Content-Pipeline-Fixtures
Build-Skripte pinnen golden-Ausgaben der Zeilenzählung, damit CRLF-Fehlbehandlung oder Leer-Eingabe-Regressionen Continuous Integration sofort scheitern lassen.
Technische Fragen
Wie zähle ich Zeilen in Text mit diesem Werkzeug?
Senden Sie JSON mit text auf Ihre nicht leere Zeichenkette gesetzt. Die Antwort liefert Zählungen total, non_empty und blank plus Aliase und character_count.
Ist der Zeilenzähler kostenlos?
Das Browser-Werkzeug läuft kostenlos auf Ihrem Gerät. API-Aufrufe nutzen Prepaid-KIT-Guthaben zu $0.002 pro erfolgreichem Item; Validierungsfehler werden nicht berechnet.