Die Herausforderung
Ich habe neulich den Java Style Guide von Google gelesen und bin über deren Algorithmus gestolpert, um beliebige Zeichenfolgen in die CamelCase-Notation umzuwandeln. In dieser Herausforderung müssen Sie diesen Algorithmus implementieren, da Sie nicht alles im Kopf haben möchten, wenn Sie Ihre wettbewerbsfähigen Java-Einreichungen für Code-Golf-Herausforderungen schreiben.
Hinweis: Ich habe einige kleine Anpassungen am Algorithmus vorgenommen. Sie müssen das unten angegebene verwenden.
Der Algorithmus
Sie beginnen mit einer beliebigen Eingabezeichenfolge und wenden die folgenden Operationen darauf an:
- Entfernen Sie alle Apostrophe
`'
- Teilen Sie das Ergebnis in Wörter auf, indem Sie bei aufteilen
- Zeichen, die nicht alphanumerisch und keine Ziffer sind
[^a-zA-Z0-9]
- Großbuchstaben, die auf beiden Seiten von Kleinbuchstaben umgeben sind.
abcDefGhI jk
zum Beispiel Ausbeutenabc Def Ghi jk
- Zeichen, die nicht alphanumerisch und keine Ziffer sind
- Jedes Wort in Kleinbuchstaben.
- Großschreibung des ersten Zeichens jedes bis auf das erste Wort.
- Verbinde alle Wörter wieder miteinander.
Zusätzliche Bemerkungen
- Die Eingabe enthält nur druckbare ASCII-Daten.
- Wenn eine Ziffer der erste Buchstabe in einem Wort ist, lassen Sie es so, wie es ist, und markieren Sie nichts anderes in diesem Wort.
- Die Eingabe hat immer mindestens ein Zeichen.
Regeln
- Funktion oder Vollprogramm erlaubt.
- Standardregeln für die Eingabe / Ausgabe.
- Es gelten Standardlücken .
- Dies ist Code-Golf , also gewinnt die niedrigste Byte-Anzahl. Tiebreaker ist eine frühere Vorlage.
Testfälle
"Programmierpuzzles & Code Golf" -> "ProgrammierpuzzlesCodeGolf" "XML-HTTP-Anforderung" -> "xmlHttpRequest" "Unterstützt IPv6 unter iOS?" -> "supportedIpv6OnIos" "SomeThing w1th, apo'strophe's and 'punc] tuation" -> "someThingW1thApostrophesAndPuncTuation" "nichts besonderes" -> "nichts besonderes" "5pecial ca5e" -> "5pecial ca5e" 1337 -> 1337 "1337-spEAk" -> "1337Speak" "whatA mess" -> "whataMess" "abcD" -> "abcd" "a" -> "a" B -> b
Viel Spaß beim Codieren!
snake_case
&PascalCase
snake_case
wegen Python. FORTH hat auch FORTHCASE
und APL hatunreadable in any case
ApostropheS
in der Ausgabe haben.