Zeit für eine neue Typografie- Herausforderung! Dies ist ein häufiges Problem beim Kopieren und Einfügen zwischen verschiedenen Dokumentformaten: Silbentrennung. Während es die Unregelmäßigkeiten eines linksbündigen Layouts verringert oder Abstände in einem rechtsbündigen Layout ausgleicht, ist es äußerst schwierig, wenn Ihre PDF-Datei nicht ordnungsgemäß erstellt wird und die Bindestriche im Layout erhalten bleiben. Dadurch wird es schwierig, den kopierten Text zu bearbeiten oder neu zu fließen.
Glücklicherweise ist nichts ein Problem, wenn wir den unzähligen Selbsthilfebüchern da draußen glauben wollen, wenn Sie es als Herausforderung ansehen. Ich glaube, diese Selbsthilfebücher beziehen sich ausnahmslos auf PPCG, wo jedes Problem gelöst wird, wenn es als Herausforderung dargestellt wird. Ihre Aufgabe ist es, störende Silbentrennung und Zeilenumbrüche aus einem Text zu entfernen, damit er in jedem Texteditor eingefügt werden kann.
Problembeschreibung
Sie werden ein Programm oder eine Funktion schreiben, die gegebenenfalls Silbentrennungen und Zeilenumbrüche entfernt. Die Eingabe ist eine Zeichenfolge stdin
(oder die nächstgelegene Alternative) oder eine Funktionseingabe. Die Ausgabe (Ein stdout
oder Nächste Alternative oder Funktionsausgabe) ist der 'korrigierte' Text. Dieser Text sollte direkt kopierfähig sein. Dies bedeutet, dass die führende oder nachfolgende Ausgabe in Ordnung ist, die zusätzliche Ausgabe in der Mitte des korrigierten Texts (z. B. führende Leerzeichen in jeder Zeile) jedoch nicht .
Der grundlegendste Fall ist der folgende (Hinweis: keine nachgestellten Leerzeichen)
Lorem ipsum dolor sit amet, con-
sectetur adipiscing elit. Morbi
lacinia nisi sed mauris rhoncus.
Der störende Bindestrich und die Zeilenumbrüche sollten entfernt werden, um zu erhalten
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lacinia nisi sed mauris rhoncus.
Es sind jedoch einige Ausnahmen zu beachten.
- Doppelte Zeilenumbrüche weisen auf einen Absatzumbruch hin und sollten beibehalten werden.
- Richtige Substantive und Namen werden niemals über zwei Zeilen verteilt, es sei denn, sie enthalten bereits einen Bindestrich (z. B. Navier-Stokes-Gleichungen). Der Zeilenumbruch sollte entfernt werden, der Bindestrich jedoch beibehalten werden. Diese Fälle können identifiziert werden, indem nur der erste Buchstabe groß geschrieben wird.
- Manchmal kennzeichnet ein Bindestrich eine Wortgruppe (z. B. 19. und 20. Jahrhundert). Wenn dies über zwei Zeilen geschieht, wird dies in der nächsten Zeile durch ein vorangestelltes Leerzeichen angezeigt.
Ein Beispiel: (Die in diesem Beispiel geäußerten Ansichten sind fiktiv und geben nicht unbedingt die Meinung des Autors wieder. Gegner der Runge-Kutta-Fehlberg-Methode sind ebenfalls willkommen, an dieser Herausforderung teilzunehmen.)
Differential equations can
be solved with the Runge-Kutta-
Fehlberg method.
Developed in the nineteenth-
or twentieth century, this
method is completely FANTAS-
TIC.
wird werden
Differential equations can be solved with the Runge-Kutta-Fehlberg method.
Developed in the nineteenth- or twentieth century, this method is completely FANTASTIC.
Die Zeilenumbrüche können je nach Wunsch entweder der \n
oder der \r\n
ASCII-Code sein, und der Bindestrich ist ein einfaches ASCII- -
Zeichen (Minuszeichen). UTF-8-Unterstützung ist nicht erforderlich. Diese Herausforderung ist Code-Golf , also gewinnt der kürzeste Code.
quelle
GNU Sed, 68
Die Punktzahl enthält +2 für
-zr
Optionen, die an übergeben wurdensed
.Angenommen, der Eingabestream enthält keine
:
Zeichen. Wenn dies nicht akzeptabel ist,:
werden möglicherweise alle im Code enthaltenen Zeichen durch andere nicht druckbare ASCII-Zeichen ersetzt, z. B. 0x7 BEL.quelle
TeaScript , 76 Bytes
Sehr "Brute Force" -Methode.
Probieren Sie es online aus
quelle