Leerzeichen einfügen Nach der Hauptstadt Brief
Wie verdeckte "HelloWorld"
zu "Hello World"
.Das splitting erfolgt auf der Grundlage Der Großbuchstaben ,aber ausschließen sollte den ersten Buchstaben.
P. S:ich bin mir bewusst, dass die Verwendung von Zeichenfolgen.split und dann die Kombination.Wollte nur wissen, ob es einen besseren Weg gibt.
- Posting als Kommentar sondern als Antwort, denn ich kenne nicht die syntax. Aber ich bin sicher, es wäre sehr einfach zu schreiben ist ein regulärer Ausdruck Aussehen würden, für einen Großbuchstaben schreiben (das ist nicht am Anfang des Satzes), und fügen Sie ein Leerzeichen vor dem.
- Erwarten Sie
convert("HELLO") == "H E L L O"
? - mein string wird haben einige Kleinbuchstaben in den zwischen den oberen Fällen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser regex sucht nach einem Kleinbuchstaben follwed durch einen Großbuchstaben und ersetzt Sie mit den ehemaligen, den Raum und die letzteren (effektiv trennen Sie Sie mit Leerzeichen). Es bringt jeder von Ihnen in einer erfassungsgruppe
()
um der Lage sein zu re-verwenden Sie die Werte in die Ersatz-Zeichenfolge durch Rückverweise ($1
und$2
).Finden Sie groß - und Kleinbuchstaben verwendet es
\p{Ll}
und\p{Lu}
(statt[a-z]
und[A-Z]
), denn es behandelt alle groß - und Kleinbuchstaben der Unicode-standard und nicht nur diejenigen, die in dem ASCII-Bereich (diese schöne Erklärung von Unicode in regexes hauptsächlich bei Java auch).Besser ist subjektiv. Dies dauert einige Zeilen mehr code:
Verstecken dieses hässliche Umsetzung in eine utility-Klasse und verwenden Sie es als eine API (sieht OK aus der Sicht des Anwenders 😉 )
Drucke
Wenn Sie nicht wollen, um reguläre Ausdrücke verwenden, könnten Sie eine Schleife durch die Zeichen in der Zeichenfolge, indem Sie Sie auf ein stringbuilder (und ein Leerzeichen an den string-builder, wenn Sie auf einen Großbuchstaben, dass ist nicht der erste):
Pseudocode: