Text auf Zeilenbreite umbrechen
Stellen Sie eine Breite von 40 ein, und ein langer Satz kommt in 3 Zeilen zurück, keine breiter als 40 Zeichen und kein Wort in der Mitte getrennt. Ihre eigenen Zeilenumbrüche bleiben, wo sie sind. 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
- Breite
- 40
- Zeilenanzahl
- 3
- Längstes Wort
- 6
Es ist der klassische Zeilenumbruch-Algorithmus, richtig gemacht: gierig, deterministisch, wortschonend und ehrlich genug, den Auftrag abzulehnen, wenn ein einzelnes Wort länger ist als die angeforderte Breite. Sie senden eine Zeichenkette und eine Ganzzahl und erhalten den umbrochenen Text, die einzelnen Zeilen und einige nützliche Zählwerte.
Warum ein wortschonender Umbruch wichtig ist
Die meisten Anzeigeflächen erzwingen ein hartes Spaltenlimit: ein Terminal mit achtzig Spalten, eine Nur-Text-E-Mail mit zweiundsiebzig, ein Code-Kommentarblock mit hundert, eine gedruckte Rechnung mit vierzig. Text von Hand neu umzubrechen ist mühsam und fehleranfällig, und der naive Ansatz — die Zeichenkette alle N Zeichen zu schneiden — zerstört die Lesbarkeit, weil er Wörter mitten durchtrennt.
Die Fähigkeit Text auf Zeilenbreite umzubrechen erledigt die Aufgabe korrekt mit einem gierigen Algorithmus: Sie durchläuft die Wörter der Reihe nach, fügt jedes der aktuellen Zeile hinzu, solange es passt, und beginnt eine neue Zeile, wenn das nächste Wort überlaufen würde. Wörter werden nie getrennt, Silbentrennung wird nie erfunden, und das Ergebnis ist stabil: Gleiche Eingabe und gleiche Breite erzeugen stets eine byteidentische Ausgabe, was sie sicher für Tests, generierte Dokumente und jede Pipeline macht, die Text vergleicht.
Bestehende Zeilenumbrüche bleiben erhalten, und jede Quellzeile wird unabhängig umbrochen, sodass vorformatierte Absätze ihre Struktur behalten.
Wie sich der Algorithmus an den Grenzen verhält
Der Vertrag ist streng, wo Strenge Sie schützt. Die Breite muss eine positive Ganzzahl sein und mindestens so lang wie das längste Wort im Text. Leerzeichenfolgen fallen zu einfachen Leerzeichen zusammen, Leerzeilen überleben als Leerzeilen, und die Ausgabe meldet die verwendete Breite, die Zahl der erzeugten Zeilen und die Länge des längsten gefundenen Wortes, sodass Sie genau protokollieren können, was geschehen ist.
Der Algorithmus misst die Länge in Zeichen, so wie JavaScript sie zählt — die richtige Einheit für Terminal- und Code-Kontexte mit fester Breite.
Anwendungsfälle
Commit-Nachrichten und Changelogs umbrechen
Brechen Sie Prosatexte auf das übliche Limit von 72 Spalten um, bevor Sie sie in ein Repository oder eine Release-Datei schreiben.
Nur-Text-E-Mails formatieren
Halten Sie generierte E-Mails innerhalb der klassischen 78-Spalten-Hülle, damit sie in jedem Mail-Client sauber dargestellt werden.
Terminal- und CLI-Ausgaben layouten
Brechen Sie Hilfe und Beschreibungen auf die erkannte Terminalbreite um, ohne je ein Flag oder eine URL mitten im Wort zu trennen.
Häufige Fragen
Was kostet das?
Kostenlos ist sie auch in Ihrem Browser auf dieser Seite — derselbe Code läuft an beiden Orten.
Was passiert, wenn ein Wort länger ist als die Breite?
Die Fähigkeit trennt niemals ein Wort, damit es passt.
Bleiben bestehende Zeilenumbrüche erhalten?
Ja. Die Eingabe wird zuerst in Zeilen geteilt und jede Zeile unabhängig umbrochen, sodass die Absatzstruktur erhalten bleibt.
Trennt sie lange Wörter mit Bindestrich?
Nein. Silbentrennung wird nie erfunden; Wörter bleiben ganz und die Zeile bricht einfach früher um.
Ist die Ausgabe deterministisch?
Ja. Der gierige Algorithmus kennt weder Zufall noch Uhr noch Locale-Abhängigkeit; identische Eingabe liefert stets identische Ausgabe.
Wie viel Text kann ich senden?
Teilen Sie größere Dokumente vor dem Senden an Absatzgrenzen.
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/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)Beispiel-Anfrage
{
"text": "The quick brown fox jumps over the lazy dog while the sun rises slowly over the quiet hills.",
"width": 40
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.wrap_width",
"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.
Limits
max_mb | 1 |
max_chars | 500000 |
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 Textumbruch-API nimmt beliebigen Klartext und eine maximale Zeilenbreite entgegen und liefert den Text neu umbrochen in Zeilen, die diese Breite nie überschreiten und nie ein Wort zerteilen. Kein Rätselraten, keine versteckte Silbentrennung, keine Überraschungen zwischen Umgebungen — derselbe Code läuft kostenlos in Ihrem Browser und hinter der kostenpflichtigen API.
Wie sich der Algorithmus an den Grenzen verhält
Wenn ein einzelnes Wort — etwa eine URL, eine Seriennummer oder ein langes Kompositum — die Breite überschreitet, lehnt die Fähigkeit mit einem klaren invalid_input-Fehler ab, der das betroffene Wort und seine Länge nennt, statt stillschweigend eine Zeile auszugeben, die Ihr Limit verletzt. Diese Ablehnung ist beabsichtigt: Ein umbrochenes Dokument, das sein Spaltenbudget heimlich überschreitet, zerstört Layouts weiter unten, und Sie wollen das an der Quelle erkennen.
Wo sie in eine Pipeline passt
Teams rufen sie überall dort auf, wo Text mit fester Breite erzeugt wird: beim Formatieren von Versionshinweisen für eine Changelog-Datei, beim Umbrechen von Commit-Nachrichten auf die üblichen zweiundsiebzig Spalten, beim Vorbereiten von Nur-Text-E-Mail-Vorlagen, beim Layouten von Terminal-Hilfe oder beim Einpassen von Beschreibungen in das Spaltenbudget eines generierten PDFs oder einer Rechnung. Und da die Ausgabe die Zeilen auch als Array enthält, können nachfolgende Schritte sie mit einem eigenen Trennzeichen verbinden, nummerieren oder zwei Umbrüche vergleichen, ohne den Text erneut zu zerlegen. Da es sich um eine reine Parse-Fähigkeit ohne Netzwerk und ohne Modell handelt, ist sie schnell, günstig mit $0.002 pro Anfrage und deterministisch genug für eine Testsuite. Eingaben sind auf 500000 Zeichen pro Anfrage begrenzt, was jedes realistische Dokument bequem abdeckt; größere Korpora sollten vor dem Senden an natürlichen Grenzen wie Absätzen geteilt werden.