176 votes

Quel est le moyen le plus simple pour convertir une chaîne Java tout en capitales (mots séparés par des traits de soulignement) en CamelCase (aucun séparateur de mot) ?

Le titre dit à peu près tout. Ce qui est le plus simple/le plus élégant de sorte que je puisse le convertir, en Java, une chaîne de caractères dans le format "THIS_IS_AN_EXAMPLE_STRING" pour le format "ThisIsAnExampleString"? Je figure, il doit y avoir au moins un moyen de le faire à l'aide de String.replaceAll() et d'une expression régulière.

Mes premières pensées sont: faire précéder de la chaîne avec un trait de soulignement (_), de convertir la totalité de la chaîne en minuscules, et ensuite utiliser replaceAll pour convertir chaque caractère est précédé par un trait de soulignement avec sa version en majuscules.

226voto

Arnout Engelen Points 2106

Une autre option est l’utilisation de Google Guava``

George Hawkins a laissé un commentaire avec cet exemple d’utilisation :

141voto

Dan Gravell Points 2508

Jetez un oeil à la bibliothèque WordUtils dans l’Apache Commons lang :

Plus précisément, la méthode capitalizeFully (String str, séparateurs de char []) devrait faire le travail :

Barre verte !

94voto

C. Ross Points 10641
<pre><code></code><p><strong>Remarque</strong>: vous devez ajouter la validation d’argument.</p></pre>

23voto

user842664 Points 1

Avec Apache Commons Lang3 lib est qu’il est très facile.

Exemple :

Donne :

9voto

Yishai Points 42417
public static void main(String[] args) {
    String start = "THIS_IS_A_TEST";
    StringBuffer sb = new StringBuffer();
    for (String s : start.split("_")) {
        sb.append(Character.toUpperCase(s.charAt(0)));
        if (s.length() > 1) {
            sb.append(s.substring(1, s.length()).toLowerCase());
        }
    }
    System.out.println(sb);
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X