Existe-t-il des méthodes intégrées disponibles pour convertir une chaîne au format Title Case?
java
string
title-case
TylerH
la source
la source
Réponses:
Apache Commons StringUtils.capitalize () ou texte commun WordUtils.capitalize ()
par exemple: à
WordUtils.capitalize("i am FINE") = "I Am FINE"
partir de la documentation WordUtilsla source
StringUtils.capitalise()
capitalize()
?Il n'y a pas de méthodes capitalize () ou titleCase () dans la classe String de Java. Vous avez deux choix:
Exemple d'implémentation
Cas de test
les sorties:
la source
char[]
en interne dansStringBuilder
je suggère d'utilisernew StringBuilder(input.length())
Si je peux soumettre mon avis sur la solution ...
La méthode suivante est basée sur celle publiée par dfa. Il apporte le changement majeur suivant (qui est adapté à la solution dont j'avais besoin à l'époque): il force tous les caractères de la chaîne d'entrée en minuscules à moins qu'il ne soit immédiatement précédé d'un "délimiteur actionnable" auquel cas le caractère est contraint en haut de casse.
Une limitation majeure de ma routine est qu'elle fait l'hypothèse que la "casse de titre" est uniformément définie pour toutes les locales et est représentée par les mêmes conventions de casse que j'ai utilisées et donc elle est moins utile que le code de dfa à cet égard.
VALEURS DE TEST
LES SORTIES
la source
Character.toTitleCase
plutôt.Utilisez WordUtils.capitalizeFully () d'Apache Commons.
la source
Vous pouvez utiliser les langages apache commons comme ceci:
vous pouvez trouver la documentation java ici: WordUtils.capitalizeFully java doc
et si vous souhaitez supprimer les espaces entre les mondes, vous pouvez utiliser:
vous pouvez trouver la doc java pour String StringUtils.remove java doc
j'espère que cette aide.
la source
Si vous voulez la bonne réponse selon la dernière norme Unicode, vous devez utiliser icu4j.
Notez que cela dépend des paramètres régionaux.
Documentation de l'API
la mise en oeuvre
la source
Voici une autre prise basée sur les réponses de @ dfa et @ scottb qui gère tous les caractères autres que des lettres / chiffres:
Compte tenu de l'entrée:
la sortie est
la source
C'est quelque chose que j'ai écrit pour convertir snake_case en lowerCamelCase mais pourrait facilement être ajusté en fonction des exigences
la source
Je sais que c'est plus ancien, mais ne porte pas la réponse simple, j'avais besoin de cette méthode pour mon codage alors j'ai ajouté ici, simple à utiliser.
la source
J'ai eu ce problème et je l'ai recherché, puis j'ai créé ma propre méthode en utilisant des mots-clés Java, il suffit de passer la variable String en tant que paramètre et d'obtenir la sortie sous le nom de String approprié.
la source
vous pouvez très bien utiliser
ou
de l'API de Google.
la source
J'ai récemment rencontré ce problème et j'ai malheureusement eu de nombreuses occurrences de noms commençant par Mc et Mac, j'ai fini par utiliser une version du code de scottb que j'ai modifiée pour gérer ces préfixes, donc c'est ici au cas où quelqu'un voudrait l'utiliser.
Il y a encore des cas extrêmes que cela manque, mais la pire chose qui puisse arriver est qu'une lettre sera en minuscule alors qu'elle devrait être en majuscule.
la source
Conversion en cas de titre approprié:
Résultat: "Ceci est un texte"
la source
Utilisation de Spring
StringUtils
:Si vous utilisez déjà Spring de toute façon, cela évite d'introduire un autre framework.
la source
Utilisez cette méthode pour convertir une chaîne en casse de titre:
la source
Ce convertisseur transforme toute chaîne contenant une casse de chameau, des espaces blancs, des chiffres et d'autres caractères en casse de titre nettoyée.
Voici quelques entrées:
Et mes sorties:
la source
Il semble qu'aucune des réponses ne le formate dans le cas du titre actuel: "Comment décrocher votre emploi de rêve", "Pour tuer un moqueur", etc. donc j'ai fait ma propre méthode. Fonctionne mieux pour les textes en anglais.
la source
C'est la solution la plus simple
la source
Cela devrait fonctionner:
la source
Le moyen le plus simple de convertir une chaîne en cas de titre consiste à utiliser le package googles org.apache.commons.lang.WordUtils
En résultera
Je ne sais pas pourquoi il s'appelle "capitalizeFully", où en fait la fonction ne fait pas un résultat capital complet, mais de toute façon, c'est l'outil dont nous avons besoin.
la source
capitalizeFully
car il met en majuscule chaque mot, y compris ceux qui doivent être en minuscules dans un titre. grammar.about.com/od/tz/g/Title-Case.htmDésolé, je suis un débutant donc mon habitude de coder est nul!
la source