Groovy GDK äquivalent von Apache Commons StringUtils.capitalize(str) oder Perl-ucfirst(str)
ja/Nein-Frage: gibt es eine Groovy GDK-Funktion zur Großschreibung des ersten Zeichens einer Zeichenfolge?
Ich bin auf der Suche nach einem Groovy-entspricht der Perl-ucfirst(..) oder Apache Commons StringUtils.capitalize(str) (letztere wandelt den ersten Buchstaben aller Wörter in der Eingabe-string).
Ich bin derzeit auf der Codierung von hand mit ..
str = str[0].toUpperCase() + str[1 .. str.size() - 1]
.. die funktioniert, aber ich nehme an, es ist mehr Groovy Weg, es zu tun. Ich könnte mir vorstellen, ucfirst(..) wird eine allgemeinere operation als die sagen-center(..) das ist eine standard-Methode in der Groovy-GDK (siehe http://groovy.codehaus.org/groovy-jdk/java/lang/String.html).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nein, nichts gebaut, direkt in der Sprache.
Gibt es ein paar mehr groovy Möglichkeiten, das zu tun, was du fragst, aber (wenn Sie nicht verwenden möchten, StringUtils in der Java-idiomatischer Weise, wie Wladimir schlägt).
Vereinfachen Sie Ihre Methode mit einem negativen Wert in der zweiten Hälfte der Reihe:
Oder Sie können mit einer import-static, um es so Aussehen wie eine native Methode:
Können Sie auch ändern, die Metaklasse haben alle StringUtils Methoden direkt auf Sie, so dass es aussieht wie ein GDK-Methode:
Ich bin mir nicht bewusst eine solche Methode, aber ein workaround ist es, direkt die Verwendung der Apache Commons Bibliothek in Ihrer Groovy-code:
Macht es Ihr Groovy code ist, der ein bisschen Java-ish (einige mag es nicht), aber es macht den job.
IMO der große Vorteil von Groovy ist, dass können Sie ganz einfach nutzen die Java-Bibliotheken, die Sie normalerweise mit einem eher traditionellen Java-code-Basis.
Um es Global verfügbar in Ihrem app ,nur die Initialisierung dieser block am start
String.Metaklasse.capitalize = {
delegieren[0].toUpperCase()+delegieren[1..-1]
}
Wenn Sie wollte, es zu nehmen ein Schritt weiter und profitieren Sie jedes Wort, das Sie verwenden können, so etwas wie dieses:
gut können Sie versuchen, diese:
"hey this is a string".split(' ').collect{it.capitalize()}.join(' ')
oder kann dies sein:
char c = ' '
"hey this is a string".collect{
c = c==' '?it.capitalize():it
}.join()
Als Groovy 1.8.2 (freigegeben Weg zurück im September 2011),
capitalize()
ist eine integrierte ErweiterungCharSequence
dieString
implementiert.