Absatzreihenfolge online umkehren
Einleitung, Details und Schluss kommen als Schluss, Details und Einleitung zurück: 3 Absätze in umgekehrter Reihenfolge, jeder innen unverändert, umbrochene Zeilen eingeschlossen. Leerzeilen markieren, wo ein Absatz endet. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Dieses Werkzeug ordnet Absätze vom letzten bis zum ersten neu, ohne Wörter, Sätze oder Zeichen innerhalb eines Absatzes umzukehren. Fügen Sie durch Leerzeilen getrennten Text ein; Sie erhalten dieselben Blöcke in entgegengesetzter Reihenfolge und mit einheitlichem Abstand. Interne Zeilenumbrüche bleiben beim jeweiligen Absatz, sodass Zitate, Adressen, Listen und mehrzeilige Passagen zusammenbleiben. Der lokale, deterministische Vorgang eignet sich für Gliederungen, Entwürfe, Transkripte und Notizen, die in falscher Reihenfolge exportiert wurden.
So wird die Absatzreihenfolge umgekehrt
Als Absatz gilt ein nicht leerer Block, der durch mindestens eine Leerzeile vom nächsten getrennt ist. Das Werkzeug prüft, ob text vorhanden, eine Zeichenfolge mit sichtbarem Inhalt und höchstens hunderttausend Zeichen lang ist. Danach werden Zeilenumbrüche vereinheitlicht.
Auch eine Zeile nur mit Leerzeichen oder Tabulatoren bildet eine Grenze; ein einzelner Umbruch bleibt dagegen im Block. So bleiben umgebrochene Texte und Zitate zusammen. Die Liste vollständiger Absätze wird kopiert und umgekehrt.
Wörter werden weder rückwärts gelesen noch zusammengefasst oder umgeschrieben. Anschließend werden die Blöcke mit einer Leerzeile verbunden. Die Antwort enthält den fertigen Text, die erkannte Anzahl und ein strukturiertes Array der umgekehrten Absätze.
Praxis, Grenzfälle und Einschränkungen
Verwenden Sie die Funktion für richtige Blöcke in falscher Reihenfolge, etwa neueste Notizen zuerst oder rückwärts kopierte Gliederungen. Mehrere Leerzeilen bilden nur eine Grenze und erzeugen keine leeren Absätze. Einzelne Umbrüche bleiben im Block; eine Liste ohne Leerzeile zählt daher als ein Absatz.
HTML, Markdown, Überschriften, Seiten, Themen und Sätze werden nicht interpretiert. Das Werkzeug arbeitet ausschließlich mit Klartextgrenzen, normalisiert Umbrüche zu LF und entfernt äußeren Leerraum. Prüfen Sie Hinweise wie „oben“, „unten“, „zuerst“ oder „abschließend“, da die strukturelle Umkehr solche Bezüge nicht neu formuliert.
Anwendungsfälle
Chronologische Notizen neu ordnen
Wandeln Sie einen Export mit neuesten Einträgen zuerst in eine chronologische Lesefolge um.
Umgekehrten Entwurf korrigieren
Drehen Sie Abschnitte um, ohne Sätze, Zitate oder interne Umbrüche zu verändern.
Redaktionelle Abläufe vorbereiten
Erhalten Sie verbundenen Text und ein Absatz-Array für CMS, Tests und Automatisierung.
Häufige Fragen
Werden Wörter innerhalb eines Absatzes umgekehrt?
Nein. Nur die Blockreihenfolge ändert sich; Inhalt und interne Zeilen bleiben erhalten.
Wie werden Absätze erkannt?
Mindestens eine Leerzeile trennt sie; eine Zeile nur mit Leerzeichen gilt ebenfalls als leer.
Bleiben mehrere Leerzeilen erhalten?
Nein. Sie bilden eine Grenze; die Ausgabe setzt eine Leerzeile zwischen Blöcke.
Warum hat sich nach dem Umkehren nichts geändert?
Wahrscheinlich stehen zwischen Ihren Absätzen keine Leerzeilen, sodass der ganze Text als ein Block gilt. Fügen Sie zwischen den Absätzen je eine leere Zeile ein und versuchen Sie es erneut, dann tauschen die Blöcke die Plätze.
Wie kehre ich jede Zeile statt jedes Absatzes um?
Ein einfacher Zeilenumbruch trennt hier nie einen Absatz, die Zeilen eines Blocks bleiben also zusammen. Um Zeile für Zeile umzukehren, fügen Sie zuerst Leerzeilen dazwischen ein oder nutzen Sie ein Werkzeug, das die Zeilenreihenfolge umkehrt.
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/reverse-paragraphs \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Introduction comes first.\n\nSupporting details come second.\n\nConclusion comes last."}'const res = await fetch("https://api.kit.forhosting.com/str/reverse-paragraphs", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Introduction comes first.\n\nSupporting details come second.\n\nConclusion comes last."
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/reverse-paragraphs",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Introduction comes first.\n\nSupporting details come second.\n\nConclusion comes last."
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/reverse-paragraphs", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Introduction comes first.\\n\\nSupporting details come second.\\n\\nConclusion comes last."}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Introduction comes first.\n\nSupporting details come second.\n\nConclusion comes last."}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/reverse-paragraphs", 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": "Introduction comes first.\n\nSupporting details come second.\n\nConclusion comes last."
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.reverse_paragraphs",
"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_chars | 100000 |
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
Ergebnis per API oder Browser verwenden
Bei Einleitung, Details und Schluss steht anschließend der Schluss zuerst. Erhalten Sie Leerzeilen, weil sie die Grenzen festlegen. Senden Sie ein JSON-Objekt mit dem Feld text und dem vollständigen Klartext. Nutzen Sie text für Editor oder CMS, paragraphs für einzelne Blöcke und paragraph_count zur Kontrolle. Browser und API verwenden dieselbe reine Funktion. Eine erfolgreiche API-Anfrage kostet $0.002; ungültige Eingaben liefern invalid_input. Die Funktion nutzt weder Netzwerk noch Modell, Zufall oder Uhrzeit, daher ergibt dieselbe Eingabe immer dasselbe JSON.
Technische Fragen
Was geschieht bei nur einem Absatz?
Der Block bleibt erhalten, paragraph_count ist eins und das Array enthält ein Element.
Was kostet eine API-Anfrage?
Eine erfolgreiche Anfrage kostet $0.002; ungültige Eingaben liefern invalid_input.