web-dev-qa-db-fra.com

Convertir une chaîne en cas de chameau modifié en Java ou en cas de titre

Je souhaite convertir n'importe quelle chaîne de caractères en cas de chameau ou de titre modifié à l'aide de bibliothèques prédéfinies plutôt qu'en écrivant mes propres fonctions 

Par exemple "HI tHiS is SomE Statement" à "Hi This Is Some Statement" 

Regex ou n'importe quelle bibliothèque standard m'aidera.

J'ai trouvé certaines fonctions de bibliothèque dans Eclipse telles que STRING.toCamelCase();. Existe-t-il une telle chose?

13
takrishna

J'ai utilisé le ci-dessous pour résoudre ce problème.

import org.Apache.commons.lang.StringUtils;
StringUtils.capitalize(MyString);

Merci à Ted Hopp pour avoir souligné à juste titre que la question aurait dû être TITLE CASE au lieu de CAMEL CASE modifié.

Camel Case est généralement sans espaces entre les mots.

14
takrishna

Vous pouvez facilement écrire la méthode pour le faire:

  public static String toCamelCase(final String init) {
    if (init == null)
        return null;

    final StringBuilder ret = new StringBuilder(init.length());

    for (final String Word : init.split(" ")) {
        if (!Word.isEmpty()) {
            ret.append(Character.toUpperCase(Word.charAt(0)));
            ret.append(Word.substring(1).toLowerCase());
        }
        if (!(ret.length() == init.length()))
            ret.append(" ");
    }

    return ret.toString();
}
17
Florent Bayle

De commons-lang3

org.Apache.commons.lang3.text.WordUtils.capitalizeFully(String str)
15
superEb

Référer:

    static String toCamelCase(String s){
           String[] parts = s.split(" ");
           String camelCaseString = "";
           for (String part : parts){
               if(part!=null && part.trim().length()>0)
              camelCaseString = camelCaseString + toProperCase(part);
               else
                   camelCaseString=camelCaseString+part+" ";   
           }
           return camelCaseString;
        }

        static String toProperCase(String s) {
            String temp=s.trim();
            String spaces="";
            if(temp.length()!=s.length())
            {
            int startCharIndex=s.charAt(temp.indexOf(0));
            spaces=s.substring(0,startCharIndex);
            }
            temp=temp.substring(0, 1).toUpperCase() +
            spaces+temp.substring(1).toLowerCase()+" ";
            return temp;

        }
  public static void main(String[] args) {
     String string="HI tHiS is   SomE Statement";
     System.out.println(toCamelCase(string));
  }
1
NFE