Gibt es integrierte Methoden, um eine Zeichenfolge als solche in das Format der Groß- und Kleinschreibung zu konvertieren?
java
string
title-case
Bartektartanus
quelle
quelle
Antworten:
Apache Commons StringUtils.capitalize () oder Commons Text WordUtils.capitalize ()
zB:
WordUtils.capitalize("i am FINE") = "I Am FINE"
aus WordUtils docquelle
In der String-Klasse von Java gibt es keine Methodenize () oder titleCase (). Sie haben zwei Möglichkeiten:
Beispielimplementierung
Testfall
Ausgänge:
quelle
char[]
inStringBuilder
ich vorschlagen , mitnew StringBuilder(input.length())
Wenn ich meine Meinung zur Lösung einreichen darf ...
Die folgende Methode basiert auf der von dfa veröffentlichten. Es nimmt die folgende wesentliche Änderung vor (die für die Lösung geeignet ist, die ich zu der Zeit benötigte): Es zwingt alle Zeichen in der Eingabezeichenfolge in Kleinbuchstaben, es sei denn, es wird unmittelbar ein "umsetzbares Trennzeichen" vorangestellt. In diesem Fall wird das Zeichen gezwungen Großbuchstaben.
Eine wesentliche Einschränkung meiner Routine besteht darin, dass davon ausgegangen wird, dass "title case" für alle Gebietsschemas einheitlich definiert ist und durch dieselben Fallkonventionen dargestellt wird, die ich verwendet habe. Daher ist es in dieser Hinsicht weniger nützlich als der Code von dfa.
TESTWERTE
AUSGÄNGE
quelle
Character.toTitleCase
stattdessen.Verwenden Sie WordUtils.capitalizeFully () von Apache Commons.
quelle
Sie können Apache Commons langsam wie folgt verwenden:
Sie finden das Java-Dokument hier: WordUtils.capitalizeFully Java-Dokument
und wenn Sie die Zwischenräume zwischen den Welten entfernen möchten, können Sie Folgendes verwenden:
Sie finden das Java-Dokument für String StringUtils.remove Java-Dokument
Ich hoffe diese Hilfe.
quelle
Wenn Sie die richtige Antwort gemäß dem neuesten Unicode-Standard wünschen, sollten Sie icu4j verwenden.
Beachten Sie, dass dies vom Gebietsschema abhängig ist.
API-Dokumentation
Implementierung
quelle
Hier ist eine weitere Einstellung, die auf den Antworten von @ dfa und @ scottb basiert und alle Nicht-Buchstaben- / Ziffernzeichen verarbeitet:
Gegebener Input:
die Ausgabe ist
quelle
Dies ist etwas, das ich geschrieben habe, um snake_case in lowerCamelCase zu konvertieren, aber es könnte leicht an die Anforderungen angepasst werden
quelle
Ich weiß, dass dies älter ist, aber nicht die einfache Antwort enthält. Ich brauchte diese Methode für meine Codierung, also habe ich sie hier hinzugefügt, einfach zu verwenden.
quelle
Ich hatte dieses Problem und habe danach gesucht. Dann habe ich meine eigene Methode mit einigen Java-Schlüsselwörtern erstellt. Ich muss nur die String-Variable als Parameter übergeben und die Ausgabe als String mit dem richtigen Titel erhalten.
quelle
Sie können sehr gut verwenden
oder
von der Google-API.
quelle
Ich bin kürzlich auch auf dieses Problem gestoßen und hatte leider viele Namen, die mit Mc und Mac begannen. Am Ende habe ich eine Version von Scottbs Code verwendet, die ich geändert habe, um diese Präfixe zu behandeln, damit sie hier ist, falls jemand sie verwenden möchte.
Es gibt immer noch Randfälle, die übersehen werden, aber das Schlimmste, was passieren kann, ist, dass ein Buchstabe in Kleinbuchstaben geschrieben wird, wenn er groß geschrieben werden sollte.
quelle
Umstellung auf den richtigen Titel:
Ergebnis: "Dies ist ein Text"
quelle
Verwenden von Spring's
StringUtils
:Wenn Sie Spring ohnehin bereits verwenden, wird dadurch vermieden, dass ein anderes Framework hinzugefügt wird.
quelle
Verwenden Sie diese Methode, um eine Zeichenfolge in Groß- und Kleinschreibung zu konvertieren:
quelle
Dieser Konverter wandelt alle Zeichenfolgen, die Kamelbuchstaben, Leerzeichen, Ziffern und andere Zeichen enthalten, in bereinigte Titelbuchstaben um.
Hier sind einige Eingaben:
Und meine Ergebnisse:
quelle
Es scheint, dass keine der Antworten es im eigentlichen Titelfall formatiert: "Wie man seinen Traumjob landet", "Um einen Spottdrossel zu töten" usw. Also habe ich meine eigene Methode entwickelt. Funktioniert am besten für englischsprachige Texte.
quelle
Dies ist die einfachste Lösung
quelle
Das sollte funktionieren:
quelle
Die einfachste Möglichkeit, eine Zeichenfolge in eine Groß- und Kleinschreibung umzuwandeln, ist die Verwendung des Google-Pakets org.apache.commons.lang.WordUtils
Wird dies ergeben
Ich bin mir nicht sicher, warum es "capitalizeFully" heißt, wo die Funktion tatsächlich kein vollständiges Kapitalergebnis liefert, aber das ist sowieso das Werkzeug, das wir brauchen.
quelle
capitalizeFully
weil es jedes Wort groß schreibt, einschließlich derjenigen, die in einem Titel in Kleinbuchstaben geschrieben werden sollten. grammar.about.com/od/tz/g/Title-Case.htmTut mir leid, ich bin ein Anfänger, also ist meine Codierungsgewohnheit scheiße!
quelle